【Shell简单练习2】Shell 脚本输出指定文件夹下的文件名到指定的文件中

#!/bin/bash
#filename: getFileNames.sh
#命令行运行的时候,接收路径参数,然后将文件名输出到指定文件中
path=$1
tagetFile=$2
files=$(ls -1 -F  $path | grep -v [/$])
for filename in $files
do
    echo "\"$filename\"" >> $2
done

运行方式:$ sh getFileNames.sh /c/software/ ./filenames.txt

运行结果:输出结果到filenames.txt   文件名

$ cat filenames.txt
"aabb.txt"
"files.txt"

$ ll /c/software/
total 13
drwxr-xr-x 1 Administrator 197121  0 Jul 28 19:27 '05 win7 64bit driver'/
drwxr-xr-x 1 Administrator 197121  0 Mar 27 06:02  Windows7工具/
-rw-r--r-- 1 Administrator 197121  0 Aug 10 06:55  aabb.txt
-rw-r--r-- 1 Administrator 197121 10 Aug 10 22:00  files.txt

其他说明:

ls -1 -F  $path | grep -v [/$]   过滤ls的查询结果中的文件,刨除了目录

遗留问题:

目前程序针对文件名称带有空格的会处理的存在把一个文件名分割成多个的问题,后续看看怎么解决。

参考资料:

http://blog.sina.com.cn/s/blog_4de07d5e0100ygt6.html

你可能感兴趣的:(shell)