Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在bash中显示目录中包含最多硬链接的文件_Linux_Bash_Unix_Hardlink - Fatal编程技术网

Linux 如何在bash中显示目录中包含最多硬链接的文件

Linux 如何在bash中显示目录中包含最多硬链接的文件,linux,bash,unix,hardlink,Linux,Bash,Unix,Hardlink,有人知道如何在unix终端上的目录中显示具有最多硬链接的文件的特定命令吗?此解决方案适用于所有文件名(包括其中包含换行符的文件名),跳过非文件,并打印具有最大链接数目的所有文件的路径: dir=$1 # Support empty directories and directories containing files whose # names begin with '.' shopt -s nullglob dotglob declare -i maxlinks=0 numlinks m

有人知道如何在unix终端上的目录中显示具有最多硬链接的文件的特定命令吗?

此解决方案适用于所有文件名(包括其中包含换行符的文件名),跳过非文件,并打印具有最大链接数目的所有文件的路径:

dir=$1

# Support empty directories and directories containing files whose
# names begin with '.'
shopt -s nullglob dotglob

declare -i maxlinks=0 numlinks
maxlinks_paths=()
for path in "$dir"/* ; do
    [[ -f $path ]] || continue  # skip non-files
    numlinks=$(stat --format '%h' -- "$path")
    if (( numlinks > maxlinks )) ; then
        maxlinks=numlinks
        maxlinks_paths=( "$path" )
    elif (( numlinks == maxlinks )) ; then
        maxlinks_paths+=( "$path" )
    fi
done

# Print results with printf and '%q' to quote unusual filenames
(( ${#maxlinks_paths[*]} > 0 )) && printf '%q\n' "${maxlinks_paths[@]}"