首页 > 大数据 > 数据挖掘 > 文件管理基础命令之二
ls:list ,列出目录内容
用法:ls [-aAdhl] //ls 的参数很多,这里介绍常用的几种
不加参数,直接 ls ,可列出目录的内容,包括文件和子目录的名称。
-a :列出全部的文件,包括隐藏的目录和隐藏的文件(以.开头的文件)
-A :列出全部的文件,包括隐藏的目录和文件(但不包括 . 与 .. 这两个目录)
-d :仅列出目录本身,而不是列出目录内的文件数据
-h :将文件容量以人类较易读的方式(例如GB、KB等) 列出来
-l :列出文件并显示文件的属性和权限等信息
cp:copy 拷贝
用法:cp [-adfilprsu] 源文件 目标
不加参数,直接 cp 源文件 目标 (目标可以是文件名也可以是目录名)
-a :尽可能将档案状态、权限等资料都照原状予以复制。
-r :若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f :若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者会是执行命令的用户。
-u :差异复制,常用在备份里面
附:(1)
rename frompart topart filename 或者 rename 's/frompart/topart/' filename
如把文件a.txt得命名为b.txt,可以是rename 'a' 'b' a.txt (这个没有试过,看网上别人说的,是这样子的。)还可以是:rename 's/^a/b/' a.txt 在有的系统之上,用前面的那句可以通过,在有的系统之上,用后面的这个可以通过。两个不一样,一个是C的,一个是perl的。明显看出,后面这条是正则表达式的写法。
1.
2.
具体采用哪一种方式,可以man rename,在手册页的最后一行看版本。由于我使用的系统rename的版本是Perl的,所以我只能采用后面的这一种方式。
rename 强大 的地方在于,你可以使用*,?等,对所有符合条件的文件名进行批量修改。而你在使用mv的时候,只能采用写脚本,用循环的方式来解决(2)
1.
2.
$ ls *.oldreport.old schedule.old stats.old this.old$ rename 's/old/new/' *.old$ ls *.newreport.new schedule.new stats.old this.new
1.
由以上结果可见,通过这个简单的一条命令的操作,我们可以将当前目录下所有 .old 结尾的文件重命名为 .new 结尾的文件,简单高效!
如果你认为那是 rename 命令的全部那就是图样图森破了。rename 命令并不局限于更改文件扩展名,也可以更改文件名中的任意字符串。比如,我们如果想要将名为 report.* 的文件更改为review.* ,则可以使用以下命令:
$ rename 's/report/review/' *
1.
注意,正则表达式中提供的规则可以更改文件名的任意部分,无论是文件名还是扩展名。
$ rename 's/123/124/' *$ ls *124*status.124 report124.txt
1.
如果你想交互性地使用 rename 进行重命名,以方便查看都做了哪些更改,从而避免错误修改,可以使用 -v 选项。
$ rename -v 's/123/124/' *status.123 renamed as status.124report123.txt renamed as report124.txt
1.
-v 选项是要改一条文本时,给你预览一下,改一下条时,再给你预览一下,而这样效率比较低。如果我想要整体性地预览,当确认没有问题时一次性全部修改,怎么操作呢?
我们可以使用 -n 或 --nono 选项让 rename 命令实现上面的需求。
$ rename -n 's/old/save/' *rename(logger.man-old, logger.man-save)rename(lyrics.txt-old, lyrics.txt-save)rename(olderfile-, saveerfile-)rename(oldfile, savefile)rename(review.old, review.save)rename(schedule.old, schedule.save)rename(stats.old, stats.save)rename(this.old, this.save)
1.
如果对上面的这些更改觉得没问题,那么可以去掉 -n 选项来正式修改文件名。
注意,rename 正则表达式中的 . 不是一般的英文句号,而是指匹配任意字符的通配符,我们可以参考下面的命令来理解。
$ rename -n 's/.old/.save/' *rename(logger.man-old, logger.man.save)rename(lyrics.txt-old, lyrics.txt.save)rename(review.old, review.save)rename(schedule.old, schedule.save)rename(stats.old, stats.save)rename(this.old, this.save)
1.
以上例子里,不仅 .old 被修改为 .save ,-old 同样也被改为 .save 。
如果你想让 . 就是表示一个句号,需要加一个 \ 转义符号,即使用 \. 表示英文句号 .
$ rename -n 's/\.old/\.save/' *rename(review.old, review.save)rename(schedule.old, schedule.save)rename(stats.old, stats.save)rename(this.old, this.save)
1.
若要将大写字母都更改为小写字母,我们可以使用以下命令。
$ rename -n 'y/A-Z/a-z/' W*rename(WARNING_SIGN.pdf, warning_sign.pdf)rename(Will_Gardner_buttons.pdf, will_gardner_buttons.pdf)rename(Wingding_Invites.pdf, wingding_invites.pdf)rename(WOW-buttons.pdf, wow-buttons.pdf)
1.
其中,使用 -n 预览将要进行的更改,y 表示更改大小写。
在上面的示例中,我们将所有以大写字母 W 开头的文件名全部改为小写字母。
(3)FIND 命令
1.使用当前目录中的名称查找文件
在当前工作目录中查找名称为test.c的所有文件。
2.在主目录下查找文件
查找/ home目录下的所有文件,名称为test。
(上文中的前面两个find没有权限)
3.使用名称和忽略案例查找文件
找到名称为test的所有文件,并在/ home目录中同时包含大写和小写字母。
4.使用名称查找目录
在/目录中查找名称为test的所有目录。
5.使用名称查找PHP文件
在当前工作目录中查找名为test.PHP的所有PHP文件。
6.查找目录中的所有PHP文件
查找目录中的所有php文件。
第二部分 - 根据他们的权限查找文件
7.查找777个权限的文件
查找权限为777的所有文件
8.查找没有777权限的文件
查找所有文件未经许可777。
9.查找具有644个权限的SGID文件
查找权限设置为644的所有SGID位文件。
10.找到具有551权限的粘滞位文件
查找权限为551的所有Sticky Bit设置文件。
11.查找SUID文件
查找所有SUID集文件。
12.查找SGID文件
查找所有SGID设置文件
13.查找只读文件
查找所有只读文件。
14.查找可执行文件
查找所有可执行文件。
15.找到777个权限和Chmod到644的文件
查找所有777个权限文件,并使用chmod命令将权限设置为644
16.找到具有777个权限的目录和Chmod到755
查找所有777个权限目录,并使用chmod命令将权限设置为755。
17.查找并删除单个文件
找到一个名为test.c的文件并将其删除
18.查找并删除多个文件
查找和删除多个文件,如.mp3或.txt,然后使用。
19.查找所有空文件
在特定路径下查找所有空文件。
20.查找所有空目录
将特定路径下的所有空目录归档。
21.文件所有隐藏文件
要查找所有隐藏的文件,请使用以下命令。
第三部分 - 基于所有者和组的搜索文件
22.查找基于用户的单个文件
在所有者root的/ root目录下查找名为test.c的所有或单个文件。
23.查找基于用户的所有文件
查找~目录下属于用户neil的所有文件。
24.查找基于组的所有文件
查找/ home目录下属于Group Developer的所有文件。
25.查找用户的特定文件
查找~目录下的用户neil的所有.txt文件
第四部分 - 根据日期和时间查找文件和目录
26.查找最近50天修改的文件
查找50天后修改的所有文件。
27.查找最近50天访问的文件
查找50天后访问的所有文件。
28.查找最后50-100天修改的文件
查找所有被修改超过50天以及少于100天的文件。
29.在过去1小时内查找更改的文件
查找最近1小时内更改的所有文件
30.在最近1小时内查找修改的文件
查找最近1小时内修改的所有文件。
31.查找最近1小时内访问的文件
查找最近1小时内访问的所有文件。
第五部分 - 根据大小查找文件和目录
32.找到50MB的文件
要找到所有50MB的文件,请使用。
33.查找大小在50MB到100MB之间
找到大于50MB且小于100MB的所有文件。
34.查找并删除100MB的文件
查找所有100MB文件并使用一个命令删除它们。
35.查找特定文件并删除
查找超过10MB的所有.mp3文件,并使用一个命令删除它们
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70025742/viewspace-2931454/ ,如需转载,请注明出处,否则将追究法律责任。