.cp /media/d/folder1/* /home/userA/folder2/
ファイルをコピーしていますが、問題はcp: omitting directory....
。folder1
このメッセージなしでそのフォルダをコピーする他の方法はありますか?もう一つ、(コピーの代わりに)移動したい場合は、同じ質問をするのにどうすればいいですか?ありがとう
答え1
find /media/d/folder1/ -maxdepth 1 -type f | xargs cp -t /home/userA/folder2
パイプ文字の前の部分は、指定された|
ディレクトリのサブディレクトリから別のファイルを検索しようとせずに、指定されたディレクトリ内のファイルを検索します。パイプ 次のセクションでは、これらのファイルをインポートして宛先ディレクトリにコピーします。コピーする代わりにファイルを移動したい場合は、コマンドを変更できますcp
。mv
答え2
スペース、改行、その他の奇妙な文字を含むファイル名を処理するためのより安全なアプローチは、それ自体とその操作をfind
使用-exec
することです。
-exec command {} +
This variant of the -exec action runs the specified command on
the selected files, but the command line is built by appending
each selected file name at the end; the total number of invoca‐
tions of the command will be much less than the number of
matched files. The command line is built in much the same way
that xargs builds its command lines. Only one instance of `{}'
is allowed within the command. The command is executed in the
starting directory.
したがって、次のようにすることができます。
find /media/d/folder1/ -maxdepth 1 -type f -exec cp {} -t /home/userA/folder2
これにより、隠しファイルもコピーされます。
答え3
cp -R dir1/* dir2
これにより、エラーなしでdir1
すべてのエントリ(ファイルとサブディレクトリ)がからコピーされます。dir2