Zsh:1つのコマンドでディレクトリを作成し、その中にファイルを作成する方法は?

Zsh:1つのコマンドでディレクトリを作成し、その中にファイルを作成する方法は?

mkdir -pテキストファイルや中間ディレクトリと同様に、1つのコマンドを使用してそのディレクトリ内にディレクトリとファイルを作成できるかどうか疑問に思います。

touchマニュアルを注意深く読みましたが、何も見つかりませんでした。 Unixスタック交換でも答えが見つかりません。

ファイルで新しいディレクトリを起動するのは非常に日常的な作業なので、これを行う方法はありますか(おそらくtouch以外のコマンドを使用せずに)?

ベストアンサー1

installGNUコマンドには、ファイルをコピーしてそのファイルを指すディレクトリを一度に作成するcoreutilsオプションがあります(所有権と権限を指定することもできます)。-Dデフォルトでは実行可能ファイルが生成され、通常は段階的に開発ツールとして使用されるため、umaskをサポートしていませんmake install

install -m u=rw,go=r -D /dev/null some/new/file

(生成されたディレクトリコンポーネントの権限は常にですu=rwx,go=rx。)

createあるいは、いつでも次のようにZsh関数で実装できます。

create() {
  local file ret=0
  for file do
    mkdir -p -- "$file:h" && true >> "$file" || ret=$?
  done
  return "$ret"
}

たとえ通常のファイルは私には少し無意味に見えます。

通常、次のことを行います。

mkdir -p some/dir
your-editor some/dir/some-file

いくつかのファイルを作成します(エディタでファイル(実際の内容を含む)を保存した直後)。

または、次のコンテンツを生成する他のコマンド:

some-command > some/dir/some-file
wget -o some/dir/some-file https://example.com/whatever
cp source some/dir/some-file
...etc.

おすすめ記事