「cp -rvf /bin/ ./rmlater/」と「cp -rvf /bin ./rmlater/」の違いは何ですか?

「cp -rvf /bin/ ./rmlater/」と「cp -rvf /bin ./rmlater/」の違いは何ですか?

/bin全体を./rmlaterフォルダにコピーしたいとしましょう。

  • cp -rvf /bin/ ./rmalter私が望む方法で動作
  • cp -rvf /bin ./rmalterしかし、ソースにスラッシュがない場合は、空のフォルダだけが提供されることを発見しました。
  • ただし、末尾のスラッシュなしで別のソースフォルダを試しても、ファイルはコピーされcp -rvf ./Desktop ./rmlater/ます。
debian$ cp -rvf /bin ./rmlater/
'/bin' -> './rmlater/bin'
debian$ find ./rmlater/
./rmlater/
./rmlater/bin
debian$ rm -rvf rmlater/*
removed 'rmlater/bin'
debian$ cp -rvf ./Desktop ./rmlater/
'./Desktop' -> './rmlater/Desktop'
'./Desktop/chrome_via_proxy.desktop' -> './rmlater/Desktop/chrome_via_proxy.desktop'
'./Desktop/chrome.desktop' -> './rmlater/Desktop/chrome.desktop'
...

では、どうしたのか教えてくれる人はいますか?

答え1

/binへのシンボリックリンクです/usr/bin/bin後にスラッシュがないのはシンボリックリンク自体に対応し、後にスラッシュが/bin/あるのはターゲットディレクトリに対応します。

さらに、cp繰り返してもデフォルトではシンボリックリンクに従いません。だから

cp -rvf /bin/ ./rmalter

ディレクトリ(およびその内容)をコピーしますが、

cp -rvf /bin ./rmalter

シンボリックリンクのみがコピーされます。

関連情報