Sed

列出目錄中的文件而不列出目前目錄中的文件

  • August 17, 2017

假設我*.txt在目錄中有一個文件txtpath=/path/to/txt/

我想列出目前目錄(不是)中的*.txt文件,而不列出目前目錄中的文件,因為如果我執行.$txtpath``$txtpath``ls *.txt $txtpath

我設法僅使用此命令列出*.txt文件:$txtpath``find $txtpath -name '*.txt' | sed 's/\// /g' | grep -o '[^ ]*$'

但也許有更優雅的解決方案?

只需指定完整路徑以及模式:

ls -d -- "${txtpath}"/*.txt

雖然實際上列表是由 shell globbing 完成的,但ls最終只是列印它從 shell 接收的參數。您不妨在printf這裡使用:

printf '%s\n' "${txtpath}"/*.txt

txt在目錄中沒有非隱藏文件的情況下,這將給出相同的結果(在不取消不匹配 glob 的命令的 shell 中) 。

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