dir /s /b /a-d | find /v /c "&#@"
https://yushuangqi.com/blog/2016/statics-folder-file_numbers.html
# linux ubuntu计算某个文件夹下的文件数量
$ ls -l|grep "^-"|wc -l
计算文件夹数量(包含子文件夹)
$ ls -lR | grep "^d" | wc -l
计算文件数量(包含子文件夹)
$ ls -lR | grep "^-" | wc -l
统计文件夹下文件类型和数量(有哪些文件后缀,及对应的数量) -i 表示忽略大小写,-f是find结果的切分位置,范围可以调节,直到显示出正确的结果
$ find -type f -name "*.*" | cut -f1,3 -d'.' | sort | uniq -c -i
参考
【查看】
查看前3个文件名(查看前3个文件夹名同理)
$ ls -lR | grep "^-" | head -n 3
参考
# 查看文件或文件夹大小
# 查看当前文件夹大小:
$ du -h --max-depth=0
# 查看当前目录下各文件夹的大小
$ du -h --max-depth=1
# 查看某个文件的大小
$ ls -hl file1.py
# 查看当前文件夹下所有内容的大小
$ ls -hl
# 查看文件夹下的三级子目录(树状结构显示)
# tree 可以通过 apt-get install 安装
$ tree -L 3
# 不想一次显示太多?一次只显示一个page,回车翻页
tree -L 4 /dir/ |more
---------------------------------------------查看文件、文件类型-----------------------------------------------------------------------
# 查看当前目录下python开头的文件和文件夹
# 第一种方式,用ll命令
$ ll python*
lrwxrwxrwx 1 root root 9 4月 29 13:22 python3 -> python3.6*
-rwxr-xr-x 1 root root 4522328 10月 22 2018 python3.6*
# 第二种方式,用file命令
$ file python*
python3: symbolic link to python3.6
python3.6: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=9dae0eec9b3f9cb82612d20dc0c3088feab9e356, stripped
# 第三种方式,用stat命令
$ stat python*
文件:python3 -> python3.6
大小:9 块:0 IO 块:4096 符号链接
设备:812h/2066d Inode:786014 硬链接:1
权限:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2019-04-30 14:26:34.428977982 +0800
最近更改:2019-04-29 13:22:47.816443200 +0800
最近改动:2019-04-29 13:22:47.816443200 +0800
创建时间:-
文件:python3.6
大小:4522328 块:8840 IO 块:4096 普通文件
设备:812h/2066d Inode:786015 硬链接:1
权限:(0755/-rwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2019-04-30 14:26:34.428977982 +0800
最近更改:2018-10-22 19:32:17.000000000 +0800
最近改动:2019-04-29 13:22:47.844444080 +0800
创建时间:-
参考:https://jingyan.baidu.com/article/86f4a73e9df77437d65269fa.html
【修改】
文件改名:sudo rm 原文件名 更改的之后文件名
文件夹重命名:mv 原始文件夹名 重命名之后的文件夹名
文件权限更改(777为所有人可读可写可删除):sudo chmod 777 文件名
文件夹权限更改:sudo chmod -R 777 文件夹名
更改文件或文件夹的所有者(user1属于sudo用户组,$ groups 查看属于哪个用户组):
sudo chown user1:sudo /home/user1/file1.txt
sudo chown -R user1:sudo /home/user1
注:
# 777表示更改后的权限为所有人都可以读、写、执行
# 以上对文件夹的操作默认对文件夹内所有文件也执行相同操作。
# 文件或文件夹图标带有小锁的表示缺少权限,需要先更改权限再进行操作。
# 为什么是777:
输入ll查看权限信息,如-rwx-r--r--,共10个参数,对应三种类型用户
第2-4个参数属于user,5-7 group,8-10 others
r: read 可读 w: write 可写 x: execute 可执行
r=4 w=2 x=1,777代表 -rwxrwxrwx,即所有三种类型用户都可读可写可执行。
【拷贝】
文件夹复制:sudo cp -r 源文件夹 目的文件夹
文件/文件夹复制(重名跳过):sudo cp -r -n 源文件夹 目的文件夹
拷贝除某个 文件/文件夹 之外的其他 文件/文件夹: sudo cp -r /src/[^abc]* /dst/
# 拷贝文件下的前500个文件到另一个文件夹
# 拷贝当前文件夹下的前500个文件到另一个文件夹
$ ls |head -n 500 |xargs -i cp {} /home/xxx/folder1
# 同理,拷贝当前文件夹下的前100个文件夹到另一个文件夹
$ ls |head -n 100 |xargs -i cp -r {} home/xxx/folder1
# 拷贝 【文件夹A】 下 v0_开头的 前3个文件到【文件夹B】,如果是拷贝后n个则用tail替换head
$ ls A/v0_*|head -n 3 |xargs -i cp {} B/
快速文件拷贝:将folder1下的所有内容快速拷贝到folder2下
$ sudo tar cvf - folder1/ | tar xvf - -C folder2/
【删除】
文件夹删除:sudo rm -r 源文件夹 目的文件夹
将文件清空: echo "" > 目标文件
【文本编辑 vi】
命令状态 / 编辑状态切换:输入冒号: 之后输入命令 / 按Esc退出命令状态之后按 i
光标移动:h, j ,k, 空格
删除当前光标:x
删除当前行:dd
光标定位到首行:gg
删除光标之后所有:dG
粘贴(系统剪贴板):shift + insert
粘贴:鼠标中键
粘贴:p 。。。没成功过。。
退出 / 强制退出 / 保存修改后退出:q / q! / wq
增加一行:o(光标下方)
增加一行:O(光标上方)
把下面一行合并到本行后面:J
【文件传输】
---------linux ubuntu和windows之间用命令行互相传递文件--------------------------------------------------------------
# 服务器地址:10.xxx.xxx.xx
# 服务器用户名:user_1
# 在windows cmd中输入
# windows本地文件上传到ubuntu服务器
scp D:\projects\folder1\file1.py user_1@10.xxx.xxx.xx:/home/user_1/folder1
# ubuntu服务器文件下载到windows本地
C:\Windows\system32>scp user_1@10.xxx.xxx.xx:/home/user_1/folder1/v0_000001.jpg D:\projects\folder1\
# 如果是上传或下载整个文件夹,就使用scp -r
如果服务器端系统重装了,本地需要重新生成服务器的秘钥:
C:\Users\xxx\Downloads>ssh-keygen -R "192.168.0.115"
192.168.0.115是ubuntu服务器IP
同时传送 / 拷贝多个文件:
$ cd /home/user_2/folder2/
$ sudo scp file1 file2 file3 user_1@10.xxx.xxx.xx:/home/user_1/folder1