如何取消目錄下的所有符號連結?

如何取消目錄下的所有符號連結?

我想像這樣取消符號連結:

unlink *

然而它說unlink: extra operand

我只想刪除連結文件,保留原始文件。

答案1

使用“*”您嘗試取消目前位置下的所有檔案和目錄的連結。

unlink 不能處理文件或目錄,它只能處理鏈接,使用 find 命令查找所有鏈接並取消鏈接,如下所示:

find . -type l -exec unlink {} \;

答案2

我會避免使用find … -exec ….當你需要unlinkrm的結果時find,使用它-delete選項代替。

find . -maxdepth 1 -type l -delete

此命令將找到當前目錄中的所有符號連結-type l(不是子目錄中的;您*不會下降到子目錄,所以我假設這就是您想要的)並刪除它們。預設行為是不遵循符號鏈接,因此原始文件不會受到影響。

答案3

此命令將查找並刪除當前資料夾中的所有符號鏈接,它不會遞歸到子資料夾中,並且會忽略點文件

find . -maxdepth 1 -type l ! -name '.*' -delete

相關內容