Linux For 風格指令

Linux For 風格指令

在 Windows DOS 中,我可以使用該for命令來大幅提高工作效率並同時執行無數的事情。在 PowerShell 中,效果甚至更好。在 Linux 上,我很掙扎。

如何建立一批到另一個磁碟機上的某些資料夾的軟連結?

如果這樣做,ln -s 2013-02-*它會做一些完全瘋狂的事情,並在隨機資料夾中建立連結。

所以我嘗試使用命令替換,但echo首先進行測試,問題是

echo 'prepend/'`ls /drive/ -1`

僅將 prepred/ 字串新增至第一個條目之前。這告訴我,雖然我使用刪除命令進行了一次命令替換,但它並沒有按照我想像的方式工作(為每個 ls 結果生成一個命令)。

我又開始需要 for 迴圈了。我該如何做「foreach $row in (ls -1) do (something)」?

答案1

從您想要連結的資料夾開始,這將起作用:

ln -s sourcefolder/2013-02-* .

當然有一個完全合理的「for」指令:

for var in path/* ; do echo "prepend$var" ; done

編輯:使用程式向另一個程式提供參數清單的一般方法是反引號:``,因此您可以執行以下操作:

for x in `ls -1` ; do program $x ; done

但是,ls 有一些魔力,因此如果您將其用作另一個程式的輸入,則無需輸入 -1;您只需取得帶有 * 模式(“glob”)的檔案清單。

相關內容