Sed
列出目錄中的文件而不列出目前目錄中的文件
假設我
*.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 中) 。