Linux统计某文件夹下文件、文件夹的个数
统计某文件夹下文件的个数
ls -l |grep "^-"|wc -l
统计某文件夹下目录的个数
ls -l |grep "^d"|wc -l
统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
统计/imagedata/data/20161108目录(包含子目录)下的所有txt文件
ls -lR /imagedata/data/20161108|grep txt|wc -l
或者
ls -lR "/imagedata/data/20161108"|grep "txt"|wc -l
说明:
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
ls -lR
长列表输出该目录下文件信息(R代表子目录注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
---------------------------------------------------------------
如果只查看文件夹
ls -d 只能显示一个.
find -type d 可以看到子文件夹
ls -lF |grep / 或 ls -l |grep '^d' 只看当前目录下的文件夹,不包括往下的文件夹
其他操作
1.opencv 版本查看
pkg-config --modversion opencv
2.linux 系统
显卡:
lspci | grep VGA
CPU
cat /proc/cpuinfo
内存和硬盘
free -m # 内存
df -h # 硬盘
查看系统版本:
sudo lsb_release -a
内核版本:
uname -r
路径查看
sudo find / -iname
# 查找文件
sudo find / -name xxx.x
确认删除文件是否被占用
lsof | grep deleted
根据第二列的pid,杀掉进程
kill -9 pid
垃圾箱清理
df -lh # 查看磁盘信息
du -h --max-depth=1 # 定位最大文件目录
ls -lhS # 定位最大文件
sudo rm -rf ~/.local/share/Trash # 垃圾箱清理
cuda 版本查看:
cat /usr/local/cuda/version.txt
cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
查看被谁占用:
sudo fuser -v /dev/nvidia*
查找当前活跃进程
ps -ef | grep "python"
3.文件传输
rsync
它比scp更强大,支持“不覆盖”原目录例子:
rsync -avzt --progress /root/client/ root@202.112.23.12:/home/work/
//将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程。
例子:
rsync -avzut --progress /root/client/ root@202.112.23.12:/home/work/
-u选项,指定不覆盖原目录内容
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-t, --times 保持文件时间信息
4.相关的进程管理bash cmd
nvidia-smi 监控GPU,
watch -n 1 nvidia-smi 实时监控GPU,
watch -n 1 lscpu 实时监控CPU,
ps -elf 进程查看,
ps -elf | grep python 查看Python子进程,
kill -9 [PID] 杀死进程PID。
Other
ubuntu安装谷歌浏览器
Ubuntu16.04搭建GTX1080+CUDA9.0+cuDNN7.0.5+Tensorflow1.6.0环境
ubuntu无sudo权限以及非root的用户apt安装软件
一般来说使用apt安装软件,必须要有root权限,因为apt安装时需要写/usr/bin /usr/lib /usr/share等目录,而这些目录只有root用户(或有sudo权限)才有写入权限的,所以没有sudo权限的普通要用apt安装软件的话,就只能以 源码安装方式 来安装了,具体操作如下:
apt source package # package是要安装的软件名,包名和sudo apt instal package 中的一样
cd package # 进入下载的package目录,这个目录不一定就是package,名字中可能有版本号
# 使用--prefix是最关键的,它是用于指定安装目录的,如果没有它就可能要安装到/usr下了,此时需要sudo
# 必须是绝对路径,不能用~代表home,即必须以/开头,路径可以用双引号括起来
./configure --prefix=/path/to/install # 该目录可以是不存在的,会自动创建
make -j && make install # -j选项是make并行加速,&&是指只有前一条命令成功后才运行后一条
注意: 执行第一条命令可能出现如下错误:
E: You must put some 'source' URIs in your sources.list
这是因为你的/etc/apt/source.list中将所有deb-src的条目给注释掉了,所以apt命令找不到源码安装的地址,如果出现此错误并且你有sudo权限,则将所有deb-src前面的#去掉即可,但是很有可能你没有sudo权限,这个时候就需要自己手动去下载软件的源码,然后解压,然后从上面的第二条命令开始执行就可以了。
最后: 软件安装完成后,shell解释器可能找不到该软件,此时需要将该软件安装目录添加到PATH中,并且需要注意的是,必须是添加该软件(命令)的直接父目录,比如说我刚才的/path/to/install是写的$HOME/local,则安装好后一般会在local目录下生成bin目录,此时刚才安装好的软件就是在~/local/bin目录里,所以需要将 ~/local/bin添加到PATH中,而不是 ~/local。
# 添加bin目录到PATH中
vim ~/.bashrc # 打开shell的配置文件.bashrc
# 按shift+G,再按o,然后输入下面的命令
export PATH=$PATH:~/local/bin # 输入后,按ESC,然后按shift ZZ 即可保存并退出
# 使刚才的修改生效即可使用了
source ~/.bahsrc
如果没有vim编辑器,或者不太会使用vim,可以将上面的命令中的vim替换成gedit,就可以使用gedit来修改bashrc文件了。