簡體   English   中英

Bash腳本還在目錄內創建符號鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM