一起学shell(一):合并文件夹下所有文件
2013-07-26 15:49
1141 查看
几个月前,一位童鞋希望我能写个脚本,合并指定文件夹下面所有的文件,如果文件夹下有目录,则递归找到所有文件,合并为一个文件。这相当于遍历一个目录,当时第一反应就是Python 的os.walk,很快一个14 行的脚本就出来了,我很骄傲地将“如此短”的 代码交给了童鞋:
后来稍微看看了shell,发现自己根本是弱爆了,shell 完全能够一行完成的任务:
find . 递归从本文件夹开始查找文件
-type f 指定文件类型为普通文件,还可以选用的项有:d 目录、l 链接符号、c 字符设备、b 块设备、s 套接字等
-amin/-mmin/-cmin 可以指定文件的访问时间/修改时间/改变时间。e.g. find . -type f -atime +7 -print 打印出访问时间超过七天的所有文件
-perm 根据文件权限查找文件
-user 更具文件所有者查找文件
-delete 将删除查找到的文件
-exec 对查找到的文件执行命令,格式为: -exec ./commands.sh {} \;
import os import sys import shutil rootdir = sys.argv[1] newfile = sys.argv[2] f = open(newfile, "wb"); for root, subFolders, files in os.walk(rootdir): for filename in files: filePath = os.path.join(root, filename) print filePath shutil.copyfileobj(open(filePath,'rb'), f) f.close()
后来稍微看看了shell,发现自己根本是弱爆了,shell 完全能够一行完成的任务:
find . -type f -exec cat {} \;>all_files.txt
find . 递归从本文件夹开始查找文件
-type f 指定文件类型为普通文件,还可以选用的项有:d 目录、l 链接符号、c 字符设备、b 块设备、s 套接字等
-amin/-mmin/-cmin 可以指定文件的访问时间/修改时间/改变时间。e.g. find . -type f -atime +7 -print 打印出访问时间超过七天的所有文件
-perm 根据文件权限查找文件
-user 更具文件所有者查找文件
-delete 将删除查找到的文件
-exec 对查找到的文件执行命令,格式为: -exec ./commands.sh {} \;
相关文章推荐
- 合并一个文件夹下多个文件内容的单行shell命令
- Python实现合并同一个文件夹下所有txt文件的方法示例
- C++ 合并文件夹下所有的txt文件
- 遍历文件夹内所有文本文件,查找含有某种模式的行,合并到一个文件
- [shell]交互方式重命名文件夹内所有文件
- 利用Shell语言批量有序命名某一文件夹下的所有文件
- Linux_shell脚本_遍历文件夹下所有文件
- Linux_shell脚本_遍历文件夹下所有文件
- Java合并一个文件夹下所有txt文件
- 每天学点linux--(用shell实现将一个文件夹下面的所有文件拷贝到另一个文件夹下/shell下如何重命名一个文件)
- Linux之shell脚本遍历文件夹下所有文件
- python读写excel(附上将一个文件夹下所有excel文件合并成一个文件的代码)
- 把本地文件夹下的所有文件上传到hdfs上并合并成一个文件
- 【shell】遍历文件夹下所有文件
- 合并同一个文件夹中的所有相同的文件
- [置顶] 【python PDF合并】python 合并同一个文件夹下所有PDF文件
- 利用shell遍历文件夹下所有文件
- shell技巧之显示文件夹下所有文件,且为全路径
- python实现将文件夹内所有txt文件合并成一个文件
- python合并不同文件夹下所有文件