[英]Bash script creates symlink inside directory aswell
我有一個bash腳本:
for file in `find -mindepth 1 -maxdepth 1`
do
old=`pwd`
new=".${file##*/}"
newfile="$old/${file##*/}"
cd
wd=`pwd`
link="$wd/$new"
ln -s -f $newfile $link
cd $old
done
這是為了在用戶的主目錄中使用“。”創建符號鏈接。 放在當前工作目錄中的所有文件和目錄之前。 這可以正常工作,但是,它還會在任何子目錄內創建到同一目錄的符號鏈接。 EG foo現在將在〜/ .foo和foo / foo處具有鏈接。
有什么辦法可以解決這個問題?
編輯:感謝Sameer Naik和dave_thompson_085我對其進行了一些更改,但是即使將備用目錄作為參數給出,問題仍然存在。 子目錄不是問題,它是建立兩個鏈接,一個鏈接到〜/ .foo123,一個鏈接到foo123 / foo123,而不是到foo1和foo1 / foo2的〜/鏈接。
for file in `ls -l | grep -v total | awk '{print $NF;}'`
do
old=`pwd`
wd=`cd $1 && pwd`
new=".${file}"
newfile="$wd/${file}"
cd
wd=`pwd`
link="$wd/$new"
ln -s -f $newfile $link
cd $old
done
由於您不想遞歸到子目錄,請嘗試使用
for file in `ls -l | grep -v ^d | awk '{print $NF;}'`
或在find中使用-type f
排除子目錄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.