
別のディレクトリ内の複数のファイルを手動で処理する必要がある特定の問題に直面しました。選択したファイルのターゲットフォルダを動的に作成できるかどうかを知りたいです。
答え1
これを行うスクリプトは次のとおりです。POSIXシェルでは思ったほど簡単ではありません。しかし、bashでは簡単です。
#!/bin/bash
mkdir -p "${@: -1}" || exit 1
mv "$@"
Bash-ismを使用して最後の引数を取得しますmkdir
。 mkdirには-p
ディレクトリチェーン全体を生成するオプションがあるので、 "dir / subdir"を生成しようとすると機能します。
答え2
冗長性mvが存在しない場合に移動するディレクトリを作成する方法はありますか?。
Bashスクリプトとエイリアスを使用して、これに「新しいコマンド」を作成できます。
cmv.sh
#!/bin/bash
mkdir --parents "$2"; mv "$1" "$_"
そして~/.bashrc
次の行を追加してください:
alias cmv="/path/to/cmv.sh"
その後、次のように使用できます。
~# cmv **/*.zip destination
これで目的地が作成されます。