拡張子が異なる複数のファイルをあるディレクトリから別のディレクトリにコピーしたいと思います。
だから私は次のように書くでしょう:
cp -r dir1/*.gif dir2
しかし、同じコマンドですべての.jpgファイルをコピーしたいと思います。動作するANDコマンドはありますか?
答え1
簡単にすべて一覧表示できます。
cp dir1/*.gif dir1/*.jpg dir2
仕組みは、シェルがパラメータを拡張して実際に実行できるように、一致する*
すべての名前を渡すことです。cp
cp dir1/file1.gif dir1/file2.gif dir1/file3.jpg dir1/file4.jpg dir2
答え2
cp /path/src/*.{gif,jpg} /path/dest
情報についてワイルドカードとワイルドカードのパターン。
特に:
{ } (curly brackets)
terms are separated by commas and each term must be the name of something or a wildcard. This wildcard will copy anything that matches either wildcard(s), or exact name(s) (an “or” relationship, one or the other).
For example, this would be valid:
cp {*.doc,*.pdf} ~
This will copy anything ending with .doc or .pdf to the users home directory. Note that spaces are not allowed after the commas (or anywhere else).
答え3
Forループはこの種の作業に適しています。
例:現在のディレクトリのすべての.pyファイルと.ipynbファイルをdst /というディレクトリにコピーします。
for file in *.py *.ipynb; do cp $file /dst/; done