symlinks.sh

来自「一本完整的描述Unix Shell 编程的工具书的所有范例」· Shell 代码 · 共 49 行

SH
49
字号
#!/bin/bash# symlinks.sh: Lists symbolic links in a directory.directory=${1-`pwd`}#  Defaults to current working directory,#+ if not otherwise specified.#  Equivalent to code block below.# ----------------------------------------------------------# ARGS=1                 # Expect one command-line argument.## if [ $# -ne "$ARGS" ]  # If not 1 arg...# then#   directory=`pwd`      # current working directory# else#   directory=$1# fi# ----------------------------------------------------------echo "symbolic links in directory \"$directory\""for file in "$( find $directory -type l )"   # -type l = symbolic linksdo  echo "$file"done | sort                                  # Otherwise file list is unsorted.#  Strictly speaking, a loop isn't really necessary here,#+ since the output of the "find" command is expanded into a single word.#  However, it's easy to understand and illustrative this way.#  As Dominik 'Aeneas' Schnitzer points out,#+ failing to quote  $( find $directory -type l )#+ will choke on filenames with embedded whitespace.#  Even this will only pick up the first field of each argument.exit 0# Jean Helou proposes the following alternative:echo "symbolic links in directory \"$directory\""# Backup of the current IFS. One can never be too cautious.OLDIFS=$IFSIFS=:for file in $(find $directory -type l -printf "%p$IFS")do     #                              ^^^^^^^^^^^^^^^^       echo "$file"       done|sort

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?