Command-Line

查找等效於 ls -p 的命令

  • November 20, 2018

是否需要找到生成輸出的命令,就像ls -p會生成一樣?

find /path/to/ -mindepth 1 -maxdepth 1 -exec basename {} \;目錄沒有斜杠..我需要輸出文件夾名稱有斜杠

樣本輸出:

folder 1/
my-file-1.sh

find命令列出沒有完整路徑的目錄內容和帶有斜杠的文件夾

$ find /path/to -mindepth 1 -maxdepth 1 -exec sh -c '
    [ -d "$1" ] && printf "%s/\n" "${1##*/}" || printf "%s\n" "${1##*/}" ' _ {} \;
aDirectory/
afile

說明:

  • [ -d "$1" ],這會檢查它是否是一個目錄,如果是,則執行如下printf
printf "%s/\n" "${1##*/}"

否則,在下面執行printf

printf "%s\n" "${1##*/}"
  • ${1##*/}:這將刪除所有內容的最長匹配,*直到/從文件/目錄路徑的乞求開始看到最後一個斜杠,這只會導致最後一個目錄/文件名。

至少使用 GNU find,您可以使用內置的-printf例如

find . -mindepth 1 -maxdepth 1 -type d -printf '%f/\n' -o -type f -printf '%f\n'

引用自:https://unix.stackexchange.com/questions/433215