為 cp 命令複製長路徑的最快方法是什麼?
我正在 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
兩次以獲取候選人列表。(如果您使用zsh
oh-my-zsh 或其他許多優秀的 shell 擴展程序而不是普通的 bash,您將享受到更方便的完成)。