135

Default.png という名前のファイルを除いて、ディレクトリからすべてのファイルをコピーしたいと思います。これを行うにはいくつかの方法があるようです。あなたにとって最も効果的だと思われるものは何ですか?

4

8 に答える 8

176

次のようにする必要があります。

cp -r !(Default.png) /dest

現在のフォルダーにネストされたフォルダーにコピーする場合 (以下の例では example と呼ばれます)、そのディレクトリも省略する必要があります。

cp -r !(Default.png|example) /example
于 2009-08-21T18:40:16.857 に答える
87

rsync は長い間、私の cp/scp の代替品でした:

rsync -av from/ to/ --exclude=Default.png

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity
于 2009-08-21T18:59:42.293 に答える
62

src/ファイルのみが含まれている場合は単純です。

find src/ ! -name Default.png -exec cp -t dest/ {} +

サブディレクトリがある場合src/、これはそれらを省略しますが、それらの中にファイルをコピーします:

find src/ -type f ! -name Default.png -exec cp -t dest/ {} +

サブディレクトリがある場合src/、これはそれらに再帰しません:

find src/ -type f -maxdepth 1 ! -name Default.png -exec cp -t dest/ {} +
于 2009-08-21T18:59:15.337 に答える
2

私はただやります:

cp srcdir/* destdir/ ; rm destdir/Default.png

ファイルが大きくない限り。それ以外の場合は、例を使用します

find srcdir -type f/ |grep -v Default.png$ |xargs -ILIST cp LIST destdir/
于 2009-08-21T18:41:13.267 に答える
2
cp `ls | grep -v Default.png` destdir
于 2009-08-21T19:01:52.210 に答える
-1
# chattr +i /files_to_exclude
# cp source destination
# chattr -i /files_to_exclude
于 2013-05-22T07:25:25.693 に答える