これにより、親ディレクトリとともにfoo.c
新しいディレクトリに移動します。baz
bar
mv foo.c `mkdir -p ~/bar/baz/ && echo $_`
-p
オプションmkdir
必要に応じて中間ディレクトリを作成します。
なし-p
パス接頭辞内のすべてのディレクトリすでに存在している必要があります。
バックティック内のすべて``
が実行され、出力はコマンドの一部としてインラインで返されます。は何も返さない
ためmkdir
、の出力のみecho $_
がコマンドに追加されます。
$_
以前に実行されたコマンドの最後の引数を参照します。
この場合、新しいディレクトリへのパスが返されます(~/bar/baz/
mkdir
コマンドに渡された)。
宛先を指定せずにアーカイブを解凍
demo-app.zip
し、現在のディレクトリからという新しいディレクトリに以外のすべてのファイルを移動したいと考えました
demo-app
。
次の行でトリックを実行します。
mv `ls -A | grep -v demo-app.zip` `mkdir -p demo-app && echo $_`
ls -A
隠しファイルを含むすべてのファイル名を返します(暗黙的.
および..
)。
パイプ記号|
は、ls
コマンドの出力をパイプするために使用されますgrep
(コマンドライン、プレーンテキスト検索ユーティリティ)。フラグは、指示を除くすべてのファイル名を検索し、返すように。
そのファイルのリストは、moveコマンドのソース引数としてコマンドラインに追加されます。target引数は、を使用して参照に渡され、を使用して出力される新しいディレクトリへのパスです。
-v
grep
demo-app.zip
mv
mkdir
$_
echo