Debian

為 cp 命令複製長路徑的最快方法是什麼?

  • May 26, 2022

我正在 Windows 電腦上通過 SSH 控制基於 Linux 的 NAS。我想要做的是使用 cp -al 命令將文件夾從一個目錄快速復製到另一個目錄,硬連結裡面的所有文件。目前我所做的是用 ls 列出目錄,然後用滑鼠突出顯示它,右鍵點擊複製它,然後將其粘貼回去,例如,如果我正在硬連結一個名為“Madagascar.2005.1080p.BluRay. DTS.x264”我只會複製該目錄的名稱,然後手動寫出, cp -al "sourceDir/Movie/然後粘貼到“Madagascar.2005.1080p.BluRay.DTS.x264”中。我對第二個目錄執行相同的操作來建構整個命令:

cp -al "sourceDir/Madagascar.2005.1080p.BluRay.DTS.x264" "dstDir/Movie/Madagascar.2005.1080p.BluRay.DTS.x264"

整個過程非常繁瑣,而且當在 linux shell 上完成的所有其他事情都在沒有滑鼠的情況下完成時,感覺很不自然。

有沒有更好的方法來建構這個長命令,而無需使用滑鼠複製和粘貼內容,或者手動輸入整個名稱?

編輯:我不想刪除源目錄。源目錄大致如下所示:

'Lost S04 720p BluRay DTS x264
Lost.S03.720p.BluRay.DTS.x264
'Million.Dollar.Extreme.Presents.World.Peace.S01.1080p'
'The Simpsons S01 1080p DSNP WEBRip DDP5.1 x264'
'The Simpsons S02 1080p DSNP WEBRip DDP5.1 x264'

我將經常更改源目錄或目標目錄。

所以,首先,你顯然是在努力工作,就好像你有一個合適的文件管理器一樣。這不是犯罪,你應該使用一個:)

傳統上,午夜指揮官是您應該使用的工具mc;您甚至可以直接將其安裝在 NAS 上!

在這個時代,ranger(你說你在 debian 上,確實如此sudo apt install ranger。)可能更接近你想要的,感覺更現代。您可以使用 選擇任何“窗格”中的多個文件space,然後按@對它們執行命令:您將:shell %s在螢幕底部看到。當%s您按 Enter 時,將擴展為所有選定的文件名,因此只需輸入您的命令,:shell cp -al -t /dstDir/Movie %s然後按 Enter。而已。

然而,ranger它是一個強大的工具(它也是如此mc,它至少有更突出的菜單!),10 分鐘的教程可能會讓世界變得不同。


無需使用滑鼠複製和粘貼內容,或手動輸入全名?

您需要聽說過tab除了最基本的 shell 之外所有的 -completion !鍵入任何文件名的第一個字母,點擊tab。如果只有一個文件以這樣的方式開始,它就會完成。如果有多個選擇,請按tab兩次以獲取候選人列表。(如果您使用zshoh-my-zsh 或其他許多優秀的 shell 擴展程序而不是普通的 bash,您將享受到更方便的完成)。

引用自:https://unix.stackexchange.com/questions/703855