On でCentos 7
次のコマンドを使用する場合:
cp -rsf /path/of/source /path/of/target
宛先ディレクトリが存在する場合、ファイルは/path/of/target/source
。
これをどのように避けることができますか?
編集する:
- ソースと宛先はディレクトリです。
- シンボリックリンクは私の環境要件を満たしています。ストレージスペースを節約するにはシンボリックリンクが必要です。
たとえば、
mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
cp -rsf /home/admin/test/1 /home/admin/test2/1
ls /home/admin/test2/1
結果:
drwxrwxr-x 2 admin admin 4096 Sep 16 15:57 1 -rw-rw-r-- 1 admin admin 0 Sep 16 15:56 1.txt
私はこの結果が欲しい:
lrwxrwxrwx 1 admin admin 24 Sep 16 16:03 1.txt -> /home/admin/test/1/1.txt
これは、ソースディレクトリ自体がターゲットにコピーされますが、その内容もコピーしたいという意味です(ターゲットディレクトリが存在しないかのように)。
答え1
-T
解決策は追加することです。男性
-T, --no-target-directory treat DEST as a normal file
cp -rsfT /path/of/source /path/of/target
ターゲットディレクトリが存在する場合、その中にシンボリックリンクがコピーされます。これの利点は、ターゲットに他のファイルがある場合は変更されていないことです。