linux以长格式显示文件名,linux列目录 解压命令 命令参数列表过长 批量修改文件名 删除文件大小为0文件...

linux列目录 解压命令 命令参数列表过长 批量修改文件名 删除文件大小为0文件

(2011-07-08 17:50:13)

在windows里列出当前路径下所有的目录用dir -ad就可以了,在linux里用ls有点小麻烦,需要这样写:

1. ls -d */

Note: 目录名原本就是'/'后缀的,只是现在一般ls出来都被剪掉了

2. ls -l | grep ^d

linux解压命令集

.tar

解包: tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

.tgz

解压:tar zxvf FileName.tgz

压缩:未知

.tar.tgz

解压:tar zxvf FileName.tar.tgz

压缩:tar zcvf FileName.tar.tgz FileName

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

.rar

解压:rar a FileName.rar

压缩:rar e FileName.rar

rar请到: http://www.rarsoft.com/download.htm 下载!

解压后将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以)

.lha

解压:lha -e FileName.lha

压缩:lha -a FileName.lha FileName

lha请到: http://www.infor.kanazawa-it.ac.jp/…/lhaunix/ 下载!

解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以)

.rpm

解包:rpm2cpio FileName.rpm | cpio -div

.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp

.arj .rar .ace .lha .lzh

.lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit

.sea

解压:sEx x FileName.*

压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

sEx请到: http://sourceforge.net/projects/sex下载!

解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以)

1、在一个目录下删除大批量的文件时,当使用 rm -rf 或者rm *会提示参数列表过长

通过修改命令为 :find . -name "*" | xargs rm -rf '*',成功删除

2、需要把一个目录下的所有文件mv到另外一个目录,如果当前目录文件特别多,简单使用mv 源目录 目的目录会提示参数列表过长

通过修改命令为 :ls | xargs -t -I {} mv {} ../matchres/ 可以把当前目录下的所有文件移到

"../matchres"下

grep ZCZC *2015060900* |awk -F':' '{print $1}'|xargs -i{} cp

-rf {} /home/chnjh/ /

3、另外cp 命令也会存在这种情况,解决办法跟 mv的一样。

批量修改文件名

方法1:把文件名拆分处理,可以任意修改文件名

find -name '*.log' -printf %f\\n|awk -F'.' '{print $1}'|xargs -i{}

mv {}.log xiyun_{}.log

方法2:利用rename

一般的linux下的rename命令比较简单

rename 'test' 'xiyun' '*.log'

把文件名中的某部分字符串替换掉

ubuntu下的rename命令支持正则表达式,因此功能更强大。

方法3:直接利用find和xargs和mv,中间不用awk,这样只能添加后缀名,不能修改文件名。

总结,方法一扩展性最强,也体现了编程实现的思想,如果再复杂一些,可以编程处理。

批量修改文件名:

find -name '*.grd.1' -printf %f\\n|awk -F'.grd' '{print $1}'|xargs

-i{} mv {}.grd.1 {}.grd

在当前目录以及子目录开始,寻找大小是0字节的文件,然后删掉。

find ./ -size 0 -exec rm {} \;

ls可以按照文件大小进行输出排序,这是一个很实用的参数。

man ls

-S sort by file size

由大到小排序ls -Sl

从小到大排序ls -Slr

-h,表示”–human-readable”,单位是k或者M ,比较容易看清楚结果。

显示子目录结构ls -R

附:

ls按时间排序

ls -lt 从新到旧

ls -lrt 从旧到新

ls对当前目录和文件大小排序

du -s * | sort -nr

只对当前目录排序,并用直观的大小显示出来

for i in $(ls -l |grep '^d' |du -s * |sort -nr|awk '{print $2}');do

du -sh $i;done

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值