如何在bash中遞歸地將相對符號鏈接轉換爲絕對符號鏈接?將相對符號鏈接轉換爲絕對符號鏈接
回答
ln -sf "$(readlink -f "$link")" "$link"
+1,不知道關於readlink的canonicalization選項! – Flexo 2010-11-15 17:46:13
您可以使用以下命令對當前工作目錄下的所有符號鏈接執行此操作:find ./ -type l -execdir bash -c'ln -sfn「$(readlink -f」$ 0「)」「$ 0」'{} \ ;' – 2014-01-31 01:37:44
對於指向目錄的符號鏈接,這將失敗:它會在目錄內創建新的符號鏈接(例如,對於符號鏈接foo - > ../foo,您將獲得foo/foo - >/abs/path/to/foo) 。 – 2015-09-17 12:14:00
萬一有人找反向操作:從絕對鏈接轉換爲相對:
使用Python:
find . -lname "`pwd`*" -exec sh -c 'ln -snvf `python -c "from os.path import *; print relpath(\"$(readlink {})\",dirname(\"{}\"))"` {}' \;
只使用bash和sed的:
find . -lname "`pwd`/*" -depth 1 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|.|"` {}' \;
find . -lname "`pwd`/*" -depth 2 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|..|"` {}' \;
find . -lname "`pwd`/*" -depth 3 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|../..|"` {}' \;
etc....
這會將子目錄中的所有絕對鏈接轉換爲相對的鏈接。
還有一個符號鏈接包可用:'symlinks -a/path/to/modify' http://linux.die.net/man/8/symlinks – pztrick 2016-08-18 00:06:58
不幸的是,它在某些操作系統上不可用。 ;( – 2017-11-02 18:40:25
)您可以下載Debian源文件並運行'gcc symlinks.c -o/usr/local/bin/symlinks'。似乎不依賴於其他任何東西。http://http.debian.net/ debian/pool/main/s/symlinks/symlinks_1.4.orig.tar.gz – pztrick 2017-11-02 19:09:49
基於@ thkala的回答,我說這對我的.bashrc:
function lnabs {
#http://stackoverflow.com/questions/4187210/convert-relative-symbolic-links-to-absolute-symbolic-links
ln -sf "$(readlink -f "$1")" "$*"
}
- 1. 如何移動相對符號鏈接?
- 2. Unix中的相對符號鏈接
- 3. 解析符號鏈接和相對URL
- 4. .htaccess或符號鏈接(符號鏈接)
- 5. C#將相對值轉換爲HTML字符串中的絕對鏈接
- 6. 符號鏈接
- 7. 符號鏈接
- 8. 如何將機械化中的相關鏈接轉換爲絕對鏈接?
- 9. 絕對與相對鏈接?
- 10. 符號鏈接自
- 11. Broken符號鏈接
- 12. 符號鏈接perl
- 13. 符號鏈接CMake
- 14. 用相對路徑轉換爲絕對路徑的符號鏈接使用查找
- 15. node_modules:符號鏈接還是不符號鏈接?
- 16. 兩個符號鏈接之間的符號鏈接
- 17. Apache的符號鏈接符號鏈接返回HTTP 500錯誤
- 18. 符號鏈接到符號鏈接...部分規範化
- 19. 用#符號將文本轉換爲javascript中的鏈接
- 20. Java。將相對鏈接替換爲絕對正則表達式
- 21. 將project_name/node_modules作爲符號鏈接?
- 22. 符號鏈接鏈接文件夾
- 23. PHP獲得絕對路徑,但沒有遵循符號鏈接
- 24. print cscope的符號鏈接的絕對路徑
- 25. 如何將目錄符號鏈接複製爲目標鏈接?
- 26. 混帳不存儲符號鏈接作爲符號鏈接在Windows
- 27. 複製符號鏈接作爲符號鏈接,_and_其引用的資源
- 28. 如何將原子提要中的相對鏈接轉換爲絕對XSL?
- 29. Bash - 破壞符號鏈接
- 30. docker -v和符號鏈接
你所說的 「遞歸」 意思? – thkala 2010-11-15 17:47:06