为您找到与linux如何用命令删除文件相关的共200个结果:
Linux系统操作中,定时删除过期文件能够释放空间内存,避免资源浪费,可使用命令实现,下面读文网小编就给大家介绍下Linux如何使用命令定时删除过期文件。
find /var/www/ -type f -mtime +30 -exec rm -f ‘{} ;’
以上命令删除30天以前的过期文件。
命令说明:
/var/www/是查找文件的路径。
-type f是指定文件类型为普通文件。
-mtime +30是指修改时间距离现在30天的文件。
-exec rm -f指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。
将以上命令,添加到crontab中,即可实现定期删除了。
比如,每天的1点30分钟实现删除,可以这样:
代码如下:
#crontab -e
30 1 * * * find /var/www/ -type f -mtime +30 -exec rm -f ‘{} ;’
上面就是Linux使用命令定时删除过期文件的方法介绍了,在使用命令的时候,你可根据具体情况选择删除过期文件的时间,选好周期是关键。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
浏览量:3
下载量:0
时间:
Linux操作很简单,删除文章只需要一些命令就可以完成,那linux下怎么删除文件夹呢?如果删除了文件夹还可以恢复吗?怎么恢复?读文网小编带大家一起来看一下。
我们都知道如果是多个用户而且多个人去的系统,我们删除的文件是很难恢复的,如果是家庭的单机使用的linux,文件误删时候还是可以进行补救的。那该怎么恢复呢?
首先我们运行SecureCRT,远程查看一下操作系统的系统版本号以及文件系统的格式是什么样的。之后我们可以运行系统自动还原的工具debugfs来对我们误删的文件进行修复打开我们被删除文件的分区open/dev/test,然后查看删除文件所在的目录ls -d/root/shill,之后我们查看显示有<>的就是我们需要的文件。
之后执行logdump –I<393289>(尖括号里面的内容更具我们具体的显示输入),这个命令执行完之后我们会看到在我们的额屏幕上会出现一个信息,我们需要的是下面的BLOCKs:这一行的内容,之后记住后面的数值,之后输入quit退出debugfs。
退出来之后执行命令dd if=/dev/test of=/tmp/shill,txt,bk bs=4096 count=1 skip=394252
1+0 records in
1+0 records out
4096 bytes(4.1 kb)copied,0.0040552 seconds,1.0kb/s
输入完之后我们就可以查看/tmp目录下有没有,之后我们就可以查看一下/tmp,执行命令 cd /tmp/我们就可以看到我们恢复的文件了。
以上就是为您介绍的Linux删除文件夹,以及误删之后怎么恢复的全部内容,希望对你有帮助。
浏览量:3
下载量:0
时间:
我们都知道Linux下rm命令可以删除文件,但如果要删除目录的话就不能只是单纯的使用rm命令了,下面小编就给大家详细介绍下Linux如何使用命令删除和创建文件夹吧。
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
删除目录、文件 rm(remove)
功能说明:删除文件或目录。
语法:rm [-dfirv][--help][--version][文件或目录。。。]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
1 删除文件夹
de》rm -rf fileNamede》
-删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
2 删除文件
de》rm -f fileNamede》
使用 rm -rf 的时候一定要格外小心,linux没有回收站的
Linux添加文件命令
创建目录:mkdir(make directories)
功能说明:建立目录
语法:mkdir [-p][--help][--version][-m 《目录属性》][目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
参数:
-m《目录属性》或–mode《目录属性》 建立目录时同时设置目录的权限。
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
例:mkdir test
创建文件 touch
功能说明:改变文件或目录时间。
语法:touch [-acfm][-d 《日期时间》][-r 《参考文件或目 录》][-t 《日期时间》] [--help] [--version][文件或目录。。。] 或 touch [-acfm][--help][--version][日期时 间][文件或目录。。。]
补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。
参数:
-a或–time=atime或–time=access或–time=use 只更改存取时间。
-c或–no-create 不建立任何文件。
-d《时间日期》 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m或–time=mtime或–time=modify 只更改变动时间。
-r《参考文件或目录》 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t《日期时间》 使用指定的日期时间,而非现在的时间。
例:touch test.txt (注:Linux下没有文件后缀名区分文件类型之说,系统文件类型只有可执行文件和不可执行文件)
上面就是Linux下删除和创建文件夹的命令介绍了,可以看出,命令加上一些参数其使用的效果就有所不同,所以使用的时候要谨慎选择。
浏览量:3
下载量:0
时间:
使用这个rm -rf删除文件的时候一定要格外小心,linux没有回收站的。
直接rm就可以了,不过要加个参数-f 即:rm -f 文件路径
-f 就是直接强行删除,不作任何提示的意思
删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件
删除目录使用实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
当然,rm还有更多的其他参数和用法,man rm就可以查看了
浏览量:1
下载量:0
时间:
用一个很简单的命令就可以实现linux系统之间互传文件功能。这个命令就是scp, 它可以在 2个 linux 主机间复制文件,那么怎么利用scp命令来实现linux系统之间互传文件呢?今天读文网小编与大家分享下怎么利用scp命令来实现linux系统之间互传文件的解决方法,有兴趣的朋友不妨了解下。
SCP(secure copy)是Linux下一个跨主机拷贝工具,使用方法很简单
近来要做linux主机的P2V操作(物理主机转虚拟机)不知道是我操作有问题还是安装的Linux有问题还是Vmware的这个Convert有问题,总之就是不让我完成这个转换,无奈之下,只好自己动手进行部署咯,可是真实主机上有大约40G的数据要向虚拟机进行迁移,Google了一下,发现了基于SSH的一个很好很强大的命令SCP.
SCP(secure copy)是Linux下一个跨主机拷贝工具,使用方法很简单,而且传输的数据也是经过SSH加密的数据,很安全,而且直连互传速度也相当快,语法也很简洁,如现在SSH上A机,要将B机/etc下面的kaisir.tar.gz文件拷贝到A机的/home下面,则仅仅需要输入:
scp root@A:/etc/kaisir.tar.gz /home
这样就能快速安全的完成复制了,但是也有一点缺陷,就是没有办法完成像FTP的FXP那样的不需用户参与的对传操作
看过“怎么利用scp命令来实现linux系统之间互传文件”
浏览量:2
下载量:0
时间:
Linux有一个rm命令(rmdir也可以在rm里现实),不过只是简单删除,这个srm命令全称是secrue rm,是安全移出的意思,那么Linux系统怎么彻底删除文件呢?今天读文网小编与大家分享下Linux系统怎么彻底删除文件的解决方法,有兴趣的朋友不妨了解下。
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
删除目录、文件 rm(remove)
功能说明:删除文件或目录。
语法:rm [-dfirv][--help][--version][文件或目录。。.]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
1 删除文件夹
de》rm -rf fileNamede》
-删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
2 删除文件
de》rm -f fileNamede》
使用 rm -rf 的时候一定要格外小心,linux没有回收站的
删除指定文件之外的其他文件
一、Linux下删除文件和文件夹常用命令如下:
删除文件: rm file
删除文件夹: rm -rf dir
需要注意的是, rmdir 只能够删除 空文件夹。
二、删除制定文件(夹)之外的所有文件呢?
1、方法1,比较麻烦的做法是:
复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。
mv keep 。。/ #保留文件(夹) keep
rm -rf * #删除当前文件夹里的所有文件
mv 。。/keep 。/ #将原来的东西移动回来
2、方法2,需要在当前文件夹中进行:
rm -rf !(keep) #删除keep文件之外的所有文件
rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件
Linux中彻底删除文件
shred彻底删除文件的方法:
$ shred -u file
shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。
如果想清除的更彻底一点可以加-z 参数,意思是先用随机数据填充,最后再用0填充。
$ shred -u -z file
另外shred还可以清除整个分区或磁盘,比如想彻底清除/dev/sdb1分区的内容可以这样:
$ shred /dev/sdb1 (注意不要加-u参数)
shred的详细参数:
-f, --force 更改权限允许写入(如有必要)
-n, --iterations=N 重写N次,默认为3次
--random-source=FILE 从指定文件读取数据
-s, --size=N 将文件粉碎为固定大小 (可使用后缀如K、M、C等)
-u, --remove 重写后截短并移除文件
-v, --verbose 显示进度
-z, --zero - add 用0覆盖数据
–help 显示帮助
–version 显示版本信息
上面就是Linux下彻底删除文件的方法介绍了,需要特别注意的是,因为Linux没有回收站,在使用彻底删除的时候要特别小心,rm -rf命令不可随意乱用。
看过“Linux系统怎么彻底删除文件”
浏览量:2
下载量:0
时间:
许多Linux操作系统默认都会保存用户操作的历史命令,而作为使用和维护者,原则上出于安全性的考虑应该删除这些历史命令。怎么删除Linux系统的历史操作命令呢?今天读文网小编与大家分享下怎么删除Linux系统的历史操作命令的解决方法,有兴趣的朋友不妨了解下。
1、修改/etc/profile将HISTSIZE=1000改成0或1
清除用户home路径下。bash_history
2、立即清空里的history当前历史命令的记录
history -c
3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。
不过,可以调用'history -w'命令要求bash立即更新history文件。
history -w
删除Linux系统的历史操作命令图文教程
这里小编需要提醒大家的是,后续操作的删除命令只会删除当前用户的操作命令,并不会影响其他用户。
在提示符后输入命令history,就可以查看到当前用户的历史操作命令。图中所示的是目前系统保存到root用户输入的377条命令。
在提示符下输入命令history -c就可以删除历史操作命令。再用history命令查看,发现历史操作命令已删除。
如果希望系统不再保存历史操作命令,就必须更改配置文件目录下的配置文件profile。首先使用vi编辑器打开该文件。
找到HISTSIZE这个值,默认情况下历史命令将保存1000条,可以将该值改为0,然后保存并退出,最后重启系统使得配置文件生效。
6重启完成后,再次使用命令history查看,发现系统已不再记录命令。
看过“怎么删除Linux系统的历史操作命令”
浏览量:2
下载量:0
时间:
入侵时目标如果是linux服务器,看切忌清理痕迹的时候别忘记history命令的记录哦,那么Linux系统怎么删除历史操作命令呢?今天读文网小编与大家分享下Linux系统删除历史操作命令的解决方法,有兴趣的朋友不妨了解下。
登录CentOS6.4操作系统,这里小编需要提醒大家的是,后续操作的删除命令只会删除当前用户的操作命令,并不会影响其他用户。
在提示符后输入命令history,就可以查看到当前用户的历史操作命令。图中所示的是目前系统保存到root用户输入的377条命令。
在提示符下输入命令history -c就可以删除历史操作命令。再用history命令查看,发现历史操作命令已删除。
如果希望系统不再保存历史操作命令,就必须更改配置文件目录下的配置文件profile。首先使用vi编辑器打开该文件。
找到HISTSIZE这个值,默认情况下历史命令将保存1000条,可以将该值改为0,然后保存并退出,最后重启系统使得配置文件生效。
6重启完成后,再次使用命令history查看,发现系统已不再记录命令。
浏览量:2
下载量:0
时间:
linux上操作文件的常用命令,最近工作中需要使用liux操作系统,处理一些文件。所有在这里整理一下liux上对文件操作的一些常用命令,便于以后工作。下面大家跟着读文网小编一起来了解一下吧。
ls
代码如下:
$ ls #查看当前目录下文件
conf lnmp_install.sh README vhost_ngx_pagespeed.sh
init.sh ngx_pagespeed.sh source vhost.sh
代码如下:
$ ls conf #查看conf目录下文件
index.html nginx.conf pureftpd-mysql.conf tz.php
init.d.nginx pure-ftpd.conf script.mysql
代码如下:
$ ls -a #显示所有文件(包含以点(.)开头的隐藏文件,)
. conf lnmp_install.sh README vhost_ngx_pagespeed.sh
.. init.sh ngx_pagespeed.sh source vhost.sh
代码如下:
$ ls -l #以长格式显示文件的详细信息,可以查看文件权限,所属用户,日期等
total 60
drwxr-xr-x 2 root root 4096 Jul 25 18:14 conf
-rwxr-xr-x 1 root root 5720 Jul 25 18:14 init.sh
-rwxr-xr-x 1 root root 21011 Jul 25 18:14 lnmp_install.sh
-rwxr-xr-x 1 root root 1983 Jul 25 18:14 ngx_pagespeed.sh
-rw-r--r-- 1 root root 392 Jul 25 18:14 README
drwxr-xr-x 15 root root 4096 Jul 27 13:58 source
-rwxr-xr-x 1 root root 4865 Jul 26 21:58 vhost_ngx_pagespeed.sh
-rwxr-xr-x 1 root root 3774 Jul 25 18:14 vhost.sh
pwd #打印当前目录
代码如下:
# pwd
/root/lnmp
cd
代码如下:
# cd ../ #进入上层目录
# cd ../../ #进入上上层目录
# cd ~ #进入当前用户的家目录
# cd /root/lnmp/conf #进入/root/lnmp/conf目录
mkdir
代码如下:
$ mkdir linuxeye #创建一个linuxeye目录
$ mkdir -p backup/sql #递归创建目录(如果目录不存在,则创建)
rm
代码如下:
$ rm init.sh #删除init.sh文件(不加-r参数不能删除目录)
$ rm -r conf #递归删除文件或目录(可以删除文件夹,系统会询问你是否删除,输入y表示确认,然后回车即可)
$ rm -rf backup #不会询问(-f参数慎用),直接递归删除文件或目录
mv
代码如下:
$ mv linux linuxeye #将linux文件或者目录重命名为linuxeye
$ mv vhost.sh conf/ #将vhost.sh移动到conf目录下
cp
代码如下:
$ cp linux linuxeye #将linux文件复制一份命名为linuxeye(如果存在linuxeye目录,则将linux文件复制到linuxeye目录下,文件名不变为linux)
$ cp -r linuxeye/ conf/ #将linuxeye目录(包含里面文件)复制到conf目录下
wget
代码如下:
$ wget //blog.linuxeye.com/wp-contenthttp://uploads.quduwen.com/lnmp.tar.gz #下载文件,可加参数-c断点续传;-T 设置超时时间后面跟秒
cat && grep
代码如下:
$ cat vhost.sh | grep linuxeye #显示vhost.sh 过滤包含linuxeye字符的行
awk
取一个公网ip地址
代码如下:
ifconfig | grep 'inet addr:' | cut -d: -f2 | grep -v ^10. | grep -v ^192.168 | grep -v ^172. | grep -v ^127. | awk '{print $1}' | awk '{print;exit}'
系统资源管理
代码如下:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda 24G 13G 9.9G 55% /
tmpfs 501M 108K 501M 1% /dev/shm
top #动态查看进程消耗资源(cpu、内存)
top -H #查看各个线程资源消耗情况
free -m # 查看内存、swap使用情况,top也可以看
压缩与解压缩
tar
代码如下:
$ tar czf linuxeye.tar.gz ./linuxeye #tar打包压缩
$ tar xzf linuxeye.tar.gz #解压
zip & unzip #加-q参数不会显示压缩过程
$ zip -r linuxeye.zip ./linuxeye #zip压缩
$ unzip -q linuxeye.zip #安静的zip解压
看过“ linux上操作文件的常用命令 ”
浏览量:3
下载量:0
时间:
工程师们经常在linux发布工程进行测试,所以要用到linux一些文件操作命令,所以小编为大家分享了Linux常用文件操作命令,下面大家跟着读文网小编一起来了解一下吧。
新建文件:
1.新建文件夹命令:mkdir 文件夹名称
2.创建文档就用:vi 文件名,然后就可以编辑文档了,退出的时候依次按ESC -> : ->x 就退出并保存了,:wq 保存后退出。:x 同“ wq”。:q! – 不保存内容, 强制退出。
删除文件:
1.删除文件夹:rm [选项] 文件夹名称。如rm -r test
2.删除文件:rm 文件名 。如:rm test.txt
修改文件:
1.vi命令。vi 文件名这样就可以打开一个文件,再点击i就可以进入编辑了。其实编辑命令还有:o,a。我这里比较熟悉i的使用:退出点击esc键,就进入命令模式。
我这里找了一些常见的命令,如下:
x:删除当前字符。
dd:删除当前行。
2dd:删除文件的当前行和后一行。
u:恢复前一步操作。
p:复制之前删除的行。
yy:复制光标所在的整行。
2yy:复制2行,举一反三 3yy。
p:粘贴到光标的后面。
4查看文件:
1.查看目录下的所有文件又2种命令:ll 和ls 。 ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls 只列出显式文件名。
2.查看某个文件内容也有2种:cat 和 vi 。cat主要有三大功能:一次显示整个文件:$ cat filenam 、从键盘创建一个文件:$ cat > filename 只能创建新文件,不能编辑已有文件、将几个文件合并为一个文件: $cat file1 file2 > file .
vi实际上是文件编辑命令,但是也可以查看文件。
看过“ Linux常用文件操作命令 ”
浏览量:2
下载量:0
时间:
每一种操作系统都有成千上万的文件组成,对于linux这样“一切皆文件”的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不是很熟悉,其实想玩linux的你更要牢牢掌握这个命令。那么linux怎么使用stat命令查看文件信息?下面跟着读文网小编一起去了解下吧。
Linux下查找文件的命令有两个;locate 和 find
首先说下locate,locate这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项:
#locate
-i //查找文件的时候不区分大小写 比如:locate –i passwd
-n //只显示查找结果的前N行 比如:locate -n 5 passwd
下面重点说下find,find在不指定查找目录的情况下是对整个系统进行遍历查找
使用格式 : find [指定查找目录] [查找规则] [查找完后执行的action]
[指定查找目录]例如:
这里要注意的是目录之间要用空格分开
[查找规则]
(1)根据文件名查找
# -name //根据文件名查找(精确查找)
# -iname //根据文件名查找,但是不区分大小写
这里另外介绍下文件名通配的知识
*表示 通配任意的字符
?表示 通配任意的单个字符
[ ] 表示 通配括号里面的任意一个字符
(2),根据文件所属用户和组来查找文件
# -user //根据属主来查找文件
# -group //根据属组来查找文件
(3),根据uid 和 gid来查找用户
#find /tmp -uid 500 //查找uid是500 的文件
#find /tmp -gid 1000 // 查找gid是1000的文件
(4),-a and -o and –not的使用
# -a 连接两个不同的条件(两个条件必须同时满足)
# -o 连接两个不同的条件(两个条件满足其一即可)
# -not 对条件取反的
(5),根据文件时间戳的相关属性来查找文件
我们可以使用stat命令来查看一个文件的时间信息 如下:
#-atime
#-mtime
#-ctime
#-amin
#-mmin
#-cmin
所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟
#find /tmp –atime +5 //表示查找在五天内没有访问过的文件
#find /tmp -atime -5 //表示查找在五天内访问过的文件
(6),根据文件类型来查找文件
-type
f // 普通文件
d //目录文件
l //链接文件
b //块设备文件
c //字符设备文件
p //管道文件
s //socket文件
(7),根据大小来查找文件
-size
#find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
#find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
#find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
(8),根据文件权限查找文件
-perm
#find /tmp -perm 755 //查找在/tmp目录下权限是755的文件
#find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
#find /tmp -perm -222 //表示必须所有类别用户都满足有写权限
(9),-nouser and -nogroup
#find / -nogroup –a –nouser //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)
[查找完执行的action]
# -print //默认情况下的动作
# -ls //查找到后用ls 显示出来
# -ok [commend] //查找后执行命令的时候询问用户是否要执行
# -exec [commend] //查找后执行命令的时候不询问用户,直接执行
这里要注意{}的使用:替代查找到的文件
#find /tmp -atime +30 –exec rm –rf {} ; #删除查找到的超过30天没有访问过文件
我们也可以使用xargs来对查找到的文件进一步操作
浏览量:2
下载量:0
时间:
file是通过查看文件的头部内容,来获取文件的类型。使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。那么Linux怎么使用file命令识别文件类型?
我们知道Linux文件系统是Linux内核支持的基本功能之一,并由根 / 开始往下形成倒立树状的级连式结构。文件与目录是Linux文件系统的两个基本元素,(广义的)文件分为普通文件、目录文件、连接文件和特殊文件。可以通过file命令来识别各种不同的文件类型。
linux对于文件的扩展名没有像windows要求的那么严格,所以在使用linux的过程中经常会遇到有些文件根本就没有扩展名,哪么我们应该如何去判断没有扩展名的文件,到底是文件还是目录呢?其实我们可以借助file来检查文件的类型,示例如下:
[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
install.log为文本文件
[root@localhost ~]# file /usr/local/
/usr/local/: directory
/usr/local为目录、
在Linux系统中,文件类型根据文件的权限以及文件内容类型来划分的。在linux中文件本身是不需要后缀名称的,我们习惯上添加后缀名称仅仅是便于直观了解这是哪种用途类型。
语法:file [选项] [文件]
file命令检验文件类型按以下顺序来完成:
检验文件系统(Filesystem)中支持的文件类型。
检验magic file规则。
检验文件内容的语言和字符集。
检验文件系统(Filesystem)中支持的文件类型
文件系统支持的文件类型指的是通过ls -l 中第一个字符表示的文件类型:
-(regular):正规文件(包括文本文件(ASCII,会打印text),可执行文件(会打印excutable),其他二进制文件(会打印data))
d(directory):目录
l(link):软链接(不包括硬连接,硬链接会以正规文件显示
b(block buffered special):随机存储的设备文件,如硬盘,光盘等存储设备
c(character unbuffered special):持续输入的设备文件,如鼠标,键盘
s(socket):socket文件,最常在/var/run目录下看到这类文件
p(pipe):管道文件(first-in-first-out),它的目的在解决多个程序同时存取一个文件造成的错误问题
检验magic file规则
magic file指的是那些具有特殊文件格式的文件,如C文件,它会有#include字样;tar文件的前几个字节会有特殊的规则。而检验magic file规则就是根据这些特殊的格式去判断一个文件的类型。而这些规则是保存在$HOME/.magic.mgc,$HOME/.magic,/etc/magic.mgc,/etc/magic/usr/share/misc/magic.mgc,/usr/share/misc/magic中。
*/magic文件是文本文件,而*/magic.mgc文件则是由*/magic编译后的二进制文件。同一目录下若存在*/magic.mgc则使用该文件,否则使用*/magic。
这些配置的优先级为$HOME/.magic*>/etc/magic*>/usr/share/misc/magic*。
*/magic文件内容格式
文件中的每行都指定了一个规则测试去检验文件类型,这个规则由4个域指定:
offset:指定由文件起始的第几个byte开始检验。
type:要进行检验的数据类型,即由offset那个byte开始的那个数据类型是什么。具体有哪些数据类型,可以参才magic(5)。常用的数据类型有
byte:一个byte的值
short:两个byte的值
long:四个byte的值
string:字符串。
test:检验值。用于检验offset下的type是否是这个test值。使用C语言的数值或字符表示形式。
message:用于显示检验结果的信息显示
如果type为数值类型,那么其后面可添加&value,表示先与后面的test值进行‘与’操作,再进行比较。如果type为字符串类型,则其后可跟/[Bbc]*,/b表示忽略空格,/c表示忽略字母大小写。
如果test的值为数值类型,可以数值前添加=,<,>,&,^,~,分别表示相等、小于、大于、与操作、异或操作、取反操作。如果test的值为字符串类型,可以在其前添加=、<、>。
看过“ Linux怎么使用file命令识别文件类型 ”
浏览量:2
下载量:0
时间:
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。那么Linux怎么用which命令查找文件?下面跟着读文网小编一起去了解下吧。
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
1.命令格式:
which 可执行文件名称
2.命令功能:
which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
3.命令参数:
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p 与-n参数相同,但此处的包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
4.使用实例:
实例1:查找文件、显示命令路径
命令:
which lsmod
输出:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]#
说明:
which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
实例2:用 which 去找出 which
命令:
which which
输出:
[root@localhost ~]# which which
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde’
/usr/bin/which
[root@localhost ~]#
说明:
竟然会有两个 which ,其中一个是 alias 这就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令!
实例3:找出 cd 这个命令
命令:
which cd
输出:
说明:
cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!
上面就是Linux下which命令的用法介绍了,Linux下的查找命令不止which命令这一种,还有其他的命令可用于查找文件位置,不同命令其用法也略有不同。
看过“Linux怎么用which命令查找文件 ”
浏览量:4
下载量:0
时间:
cut命令可以从一个文本文件或者文本流中提取文本列。那么Linux如何使用cut命令截取文件信息?下面跟着读文网小编一起去了解下吧。
cut 命令有截取的意思,可从linux文件或者标准输入中读取内容并纵向截取所需信息列的一个文本截取工具。cut能帮我们切割出所需要的的信息项,让我们在服务器进行数据分析,系统排除的时候使得数据简化,减少工作成本,提高工作效率!除了cut外,还有awk,sed,sort命令也可以做截取的功能。
命令用法:
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delim][-s][file ...]
参数:
-b, --bytes=LIST
输出 这些 字节
-c, --characters=LIST
输出 这些 字符
-d, --delimiter=DELIM
使用 DELIM 取代 TAB 做 字段(field) 分隔符
-f, --fields=LIST
输出 这些 字段
-n
(忽略)
-s, --only-delimited
不显示 没有 分隔符 的 行
--output-delimiter=STRING
使用 STRING 作为 输出分隔符, 缺省 (的 输出分隔符) 为 输入分隔符
--help
显示 帮助信息, 然后 结束
--version
显示 版本信息, 然后 结束
使用 且 只使用 -b, -c 或 -f 中的 一个 选项. LIST 由 一个 范围 (range) 或 逗号 隔开的 多个 范围 组成. 范围 是 下列 形式 之一:
N
第 N 个 字节, 字符 或 字段, 从 1 计数 起
N-
从 第 N 个 字节, 字符 或 字段 直至 行尾
N-M
从 第 N 到 第 M (并包括 第M) 个 字节, 字符 或 字段
-M
从 第 1 到 第 M (并包括 第M) 个 字节, 字符 或 字段
如果 没有 指定 文件 FILE, 或 FILE 是 -, 就从 标准输入 读取 数据.
cut的使用格式:
cut OPTION 选项 + [FILE] 要出里的文本或者信息
其中常用的选项有:
-d: 表示以什么作为分隔符,进行切割,默认是空格,
-f: 选择哪几项进行输出,如:f1表示切割出来的第一项,
如下图;是/etc/passwd前10个用户的信息
如果只想提取用户名和用户家目录的信息,可以通 head /etc/passwd | cut -d: -f1,6
-d: 表示以冒号为分隔符,-f1,6表示分隔后选择第1列和第6列输出
上面就是Linux中cut命令的用法介绍了,使用cut命令截取字符串可以减少工作量,提高工作效率,当然,你也可使用sed命令等其他命令,效果相同。
看过“Linux如何使用cut命令截取文件信息”
浏览量:4
下载量:0
时间:
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。那么Linux怎么用stat命令显示文件?下面跟着读文网小编一起去了解下吧。
用法:stat [选项]... 文件...
显示文件或文件系统的状态。
-L, --dereference 跟随链接
-f, --file-system 显示文件系统状态而非文件状态
-c --format=格式 使用指定输出格式代替默认值,每用一次指定格式换一新行
--printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作
输出结尾。如果您仍希望使用换行,可以在格式中
加入""
-t, --terse 使用简洁格式输出
--help 显示此帮助信息并退出
--version 显示版本信息并退出
有效的文件格式序列(不使用 --file-system):
%a 八进制权限
%A 用可读性较好的方式输出权限
%b 计算已分配块数(参见%B)
%B 以字节为单位输出%b 所报告的每个块的大小
%C SELinux 安全环境字符串
%d 十进制设备编号
%D 十六进制设备编号
%f 十六进制原始模式
%F 文件类型
%g 文件的属组ID
%G 文件的属组组名
%h 硬链接数量
%i Inode 编号
%m 挂载点
%n 文件名
%N 如果对象是一个符号链接,显示引用到的其它文件名
%o I/O 块大小
%s 总计大小,以字节为单位
%t 十六进制主设备类型
%T 十六进制子设备类型
%u 文件的属主ID
%U 文件的属主用户名
%w 文件创建时间,若未知则显示"-"
%W 从UNIX 元年起以秒计的文件创建时间,若未知则显示"-"
%x 上次访问时间
%X 从UNIX 元年起以秒计的上次访问时间
%y 上次修改时间
%Y 从UNIX 元年起以秒计的上次修改时间
%z 上次更改时间
%Z 从UNIX 元年起以秒计的上次更改时间
有效的文件系统格式序列:
%a 非超级用户可用的剩余块数
%b 文件系统的总数据块数
%c 文件系统中文件节点总数
%d 文件系统中空闲文件节点数
%f 文件系统中空闲块数
%i 十六进制文件系统ID
%I 允许的文件名最大长度
%n 文件名
%s 块大小(用于快速传输)
%S 基本块大小(用于块计数)
%t 十六进制类型描述
%T 可读性较好的类型描述
注意:您的shell 内含自己的stat 程序版本,它会覆盖这里所提及的相应
版本。请查阅您的shell 文档获知它所支持的选项。
ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 stat 提供了一些更为有用的信息。
下面演示了如何对可执行文件“oracle”(位于 $ORACLE_HOME/bin 目录下)使用此命令。
代码如下:
# cd $ORACLE_HOME/bin
# stat oracle
File: `oracle'
Size: 93300148 Blocks:182424 IO Block:4096 Regular File
Device: 343h/835d Inode: 12009652 Links: 1
Access: (6751/-rwsr-s--x) Uid:( 500/ oracle) Gid:( 500/ dba)
Access: 2006-08-04 04:30:52.000000000 -0400
Modify: 2005-11-02 11:49:47.000000000 -0500
Change: 2005-11-02 11:55:24.000000000 -0500
注意使用该命令获得的信息:除了通常的文件大小(也可以使用 ls -l 命令获得)以外,您还获得了该文件占用的块数。通常的 Linux 块大小为 512 字节,因此一个大小为 93,300,148 字节的文件将占用 (93300148/512=) 182226.85 个块。由于块都是完整占用,因此该文件使用了一些整数个数的块。无需猜测就可以获得确切的块数。
您还可以从以上输出中获得文件所有权的 GID 和 UID,以及权限的八进制表示形式 (6751)。如果要将文件恢复到它现在具有的相同权限,可以使用 chmod 6751 oracle,而不是显式拼写这些权限。
以上输出最有用的部分是文件访问时间戳信息。该输出显示,该文件被访问的时间是 2006-08-04 04:30:52(显示在“Access:”的旁边),即 2006 年 8 月 4 日上午 4:30:52。这是某个人开始使用数据库的时间。该文件的修改时间是 2005-11-02 11:49:47(显示在“Modify:”的旁边)。最后,“Change:”旁边的时间戳显示文件状态更改的时间。
stat 命令的修改符 -f 显示了有关文件系统(而非文件)的信息:
代码如下:
# stat -f oracle
File: "oracle"
ID: 0 Namelen:255 Type:ext2/ext3
Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
Inodes: Total: 12222464 Free: 12093976
另一个选项 -t 显示了完全相同的信息,只不过是在一行中显示的:
代码如下:
# stat -t oracle
oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061
1130950187 1130950524 4096
这对 shell 脚本非常有用,在 shell 脚本中可以使用一个简单的 cut 命令获得值以进行进一步处理。
看过“ Linux怎么用stat命令显示文件 ”
浏览量:3
下载量:0
时间:
find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} ; #删除keep以外的其他文件。
find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #删除keep以外的其他文件。推荐!
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。
其中rm -f !(a) 最为方便。如果保留a和b,可以运行rm -f !(a|b)来实现。
不过一般bash中运行后会提示
“-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决。如下:
[root@localhost /]# mkdir abc
[root@localhost /]# cd abc
[root@localhost abc]# touch a b c
[root@localhost abc]# ls
a b c
[root@localhost abc]# rm -f !(a)
-bash: !: event not found
[root@localhost abc]# shopt -s extglob
[root@localhost abc]# rm -f !(a)
[root@localhost abc]# ls
a
[root@localhost abc]# touch b c d
[root@localhost abc]# rm -f !(a|b)
[root@localhost abc]# ls
a b
另外也可以使用下面的方法:
[root@localhost abc]# ls
a b c
[root@localhost abc]# ls |grep -v a |xargs rm -f
[root@localhost abc]# ls
a
上面就是Linux删除文件的方法介绍了,当你要删除指定文件之外的所有文件的话,上面有5种方法可以实现,选一个自己习惯的方法试试看看吧。
浏览量:3
下载量:0
时间:
Linux下删除文件使用rm指令就可以完成了,那么要删除除了指定文件的其他文件又该使用哪个命令呢?下面小编就大家介绍下删除指定文件以外的文件命令。
一、Linux下删除文件和文件夹常用命令如下:
删除文件: rm file
删除文件夹: rm -rf dir
需要注意的是, rmdir 只能够删除 空文件夹。
二、删除制定文件(夹)之外的所有文件呢?
1、方法1,比较麻烦的做法是:
复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。
mv keep 。。/ #保留文件(夹) keep
rm -rf * #删除当前文件夹里的所有文件
mv 。。/keep 。/ #将原来的东西移动回来
2、方法2,需要在当前文件夹中进行:
rm -rf !(keep) #删除keep文件之外的所有文件
rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件
3、方法3,当前文件夹中结合使用grep和xargs来处理文件名:
ls | grep -v keep | xargs rm #删除keep文件之外的所有文件
说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。
4、方法4,使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:
find 。/test/ | grep -v keep | xargs rm #删除当前test文件夹中keep文件之外的所有文件
说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。
5、方法5,直接使用find命令删除其他文件:
find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} ; #删除keep以外的其他文件。
find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #删除keep以外的其他文件。推荐!
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。
上面就是Linux删除文件的方法介绍了,当你要删除指定文件之外的所有文件的话,上面有5种方法可以实现,选一个自己习惯的方法试试看看吧。
浏览量:1
下载量:0
时间: