从特定目录中列出特定类型的文件

问题描述:

如何列出特定目录中特定类型的文件?例如我想列出/ home/ABC/files /目录中的所有* .csv文件,并且我现在位于/ home目录中。从特定目录中列出特定类型的文件

TMTOWTDI

(cd /home/ABC/files/; ls *.csv) 
ls /home/ABC/files/*.csv | sed 's:.*/::' 
ls /home/ABC/files/*.csv | xargs -n1 basename 
ls /home/ABC/files/*.csv | rev | cut -d/ -f1 | rev 
for i in /home/ABC/files/*.csv; do echo "${i##*/}"; done 

ls ABC/files/*.csv 
ls /home/ABC/files/*.csv 
+0

谢谢,如果我只想要文件名而不是完整路径。它列出了/home/ABC/files/test1.csv,/home/ABC/files/test2.csv,而我只想要像test1.csv和test2.csv这样的文件名。 – yogsma 2011-01-20 06:46:25

ls ABC/files/*.csv 
ls /home/ABC/files/*.csv 
echo ABC/files/*.csv 
echo /home/ABC/files/*.csv 

使用循环

for file in ABC/files/*.csv 
do 
    # further processing 
done 

,当然,不断有用的发现。(GNU)

find ABC/file -type f -iname "*.csv" -printf "%f\n" 
+0

你所说的关于“find”的命令给出了名称来自子目录的文件也是我不想要的。 – yogsma 2011-01-20 06:55:53

+0

`find -maxdepth 1`要一致吗? – ephemient 2011-01-20 06:57:04