统计文件个数的命令:
1) 统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l
2) 统计当前文件夹下目录的个数
ls -l |grep "^d"|wc -l
3) 统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
4) 统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
代码说明:
ls -l :长列表输出当前文件夹下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep "^-":这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l:统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
远程登录的命令(ssh,scp)
ssh -l 用户名 远程主机ip
scp -r 本地文件夹 远程主机的地址
通过输入以下命令
mv source/* target/
cp source/* target/
rm source/*
ls source/*
可以看到报错信息为:
-bash: /bin/mv: Argument list too long
-bash: /bin/cp: Argument list too long
-bash: /bin/rm: Argument list too long
-bash: /bin/ls: Argument list too long
使用find命令:
find source/ -name "*.txt" -exec mv {} target ;
(第二步创建的文件名都是以.txt结尾的)或者使用
find source/ -name "*.txt" | xargs -i mv {} target/
命令,如果是cp、rm 、ls操作将以上命令里中的mv改为相应的命令即可;
使用 ls 命令:
ls dir1 | xargs -t -I {} mv dir1/{} dir2/{}
需要说明的是,上面xargs的第二个参数,是大写的i。