导航:首页 > 程序命令 > linux命令判断文件是否存在

linux命令判断文件是否存在

发布时间:2022-08-15 11:02:23

linux 目录是否存在命令

#shell判断文件夹是否存在

#如果文件夹不存在,创建文件夹
if [ ! -d "/myfolder" ]; then
mkdir /myfolder
fi
#shell判断文件,目录是否存在或者具有权限
folder="/var/www/"
file="/var/www/log"
# -x 参数判断 $folder 是否存在并且是否具有可执行权限
if [ ! -x "$folder"]; then
mkdir "$folder"
fi
# -d 参数判断 $folder 是否存在 《Linux就该这么学》 一起学习linux
if [ ! -d "$folder"]; then
mkdir "$folder"
fi
# -f 参数判断 $file 是否存在
if [ ! -f "$file" ]; then
touch "$file"
fi
# -n 判断一个变量是否有值
if [ ! -n "$var" ]; then
echo "$var is empty"
exit 0
fi
# 判断两个变量是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi

❷ linux shell 如何判断一个文件是否存在

了解你的意思,首先,test命令是判断某一个特定的文件相关信息,也就是当你使用test这个命令的时候,你是清楚它叫什么名字的(只是你不知道它的相关信息)。如果你要判断比如你说的以hbc*开头的一类文件,最好就是使用ls命令或者find命令来作。你可以参考一下,下面的小测试。
mike >>> ls -d ??? 12-04-20 23:15
acp/ apc/ scl tmp/ xmy/

mike >>> test -d x?? 12-04-20 23:15

mike >>> echo $? 12-04-20 23:16
0
mike >>> test -d x* 12-04-20 23:16
test: too many arguments
使用find命令能很好查找已hbc开头的文件或者目录,但是它不能判断有没有这样的文件,因为你不能通过find的命令执行状态来判断是否有这样的文件,但是可以把find的输出导向到一个文件,从而对文件进行判断。如下:
mike >>> find ./ -type d -name "FUK*" -print 12-04-20 23:24
mike >>> echo $? 12-04-20 23:24
0

❸ linux如何查看一个文件是否存在软链接

需要准备的材料分别是:电脑、linux连接工具。

1、首先连接上linux主机,进入等待输入指令的linux命令行状态。

❹ linux查看目录下文件的命令

linux中查看文件和目录的命令是:LS
LS英文原意:list,命令所在路径:/bin/ls,适用于所有用户权限,主要功能就是以列表形式显示目录文件。
其语法: ls 选项【-ald】【文件或目录】
其中,-a 显示所有文件,包括隐藏文件;
-l 详细信息显示;
-d 仅显示目录名,而不显示目录下的内容列表;
-h 人性化显示(hommization);
-i 查看任意一个文件的i节点(类似于身份证唯一信息);
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件;
注意:. 开头的文件除非是目录,否则就是隐藏文件

(4)linux命令判断文件是否存在扩展阅读:
创建目录命令:mkdir,英文原意:make directories,命令所在路径:/bin/mkdir,适用于所有用户权限,功能在于创建新的目录。
其语法: mkdir 【-p】【目录名】
-p 递归创建
例子:a)创建单个目录:mkdir /tmp/vae.txt
b)创建多个目录:mkdir /tmp/a.txt /tmp/b.txt

使用时的注意事项:
1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。
2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。
3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。
4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限。

❺ linux中怎么查找文件夹是否存在

linux中使用find命令来查找文件夹,使用find
/
-name
要查找的文件夹名
-type
d方式来查找。
find命令说明
语法
find(选项)(参数)
选项
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0
byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为true,就执行该指令;
-false:将find指令的回传值皆设为false;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为true;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
参数
起始目录:查找文件的起始目录。
示例:
根据文件类型进行搜索
find
.
-type
类型参数
类型参数列表:
f
普通文件
l
符号连接
d
目录
c
字符设备
b
块设备
s
套接字
p
fifo

❻ linux shell 判断文件是否存在 存在就删除

1、linux shell中判断文件是否存在,可以使用test命令的-a参数。借助于if结构进行判断即可。

2、以~/t/thello.py为例,检测这个文件,如果存在将其删除,示例代码如下:

if[[-a~/t/hello.py]];then
echo"存在文件";
rm-f~/t/hello.py
fi;

3、测试效果如下图所示

❼ linux如何用命令查看某文件夹下是否有指定的文件

ls /usr/local 此命令会打印出/usr/local文件夹下的文件,你就可以看有没有这个文件了!

❽ linux命令行怎么查看指定文件在哪

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
一.find命令
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf#在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf#在/etc目录下文件httpd.conf
(3)find /etc -name '*srm*'#使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' #表示当前目录下查找文件名开头是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c#查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
3.使用混合查找方式查找文件
参数有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2)find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件
(3)find /tmp ! -user panda#在/tmp目录中查找所有不属于panda用户的文件

二、grep命令
基本格式:find expression
1.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-i:不区分大小写
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
* :有字符,长度可以为0。

❾ 怎么查看linux磁盘是否存在

一,查看磁盘状态
这里简单介绍两个命令:df、。
df:df用来检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 df的参数有:代码:

-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。 对df命令进行详解:
引用:

dongmh@home:~$ df
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/sda12 3842376 242424 3404764 7% /
这个就是最基本用法,你可能觉得奇怪已用和可用加在一起不等于前面的块的总值,这是因为默认状况下,有留给root的专门用于维护管理的保留空间,不用在意。其他的用法无非是加上不同的参数显示不同的信息,不再反复说明。

:用于统计目录或文件所占磁盘空间的大小。 它的参数如下:代码:

-s 对每个Names参数只给出占用的数据块总数。
-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。
若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
-k 以1024字节为单位列出磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省设置)。
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。

二、Ubuntu硬盘分区

在一个有win的电脑上,分区无疑是一件很简单的事。使用分区魔术师,对硬盘可以进行分区、合并、调整大小,所以大多数和我一样电脑上先有win的朋友在分区方面一定不用愁,整理下数据,空出几个分区,然后在Ubuntu硬盘安装的时候就可以利用安装程序分好区,以后就没有什么可担忧的了,但是某些朋友因为某些 需要,必须利用linux操作系统进行分区,那么以下的内容也许能有点价值。

首先谈谈基础知识,一个Ubuntu硬盘可以划分4个区,3个主要分区,一个扩展分区,而扩展分区里可以划分n个逻辑分区,扩展分区本身不能储存任何东西,也不能格式化成某种文件系统,只能用于区分逻辑分区。

我们主要应用的命令有三个:fdisk、cfdisk、gparted。其中前两个命令在breezy中已经安装好了,如果你需要gparted的话是需要另外安装的,我们的源里有,安装方法:代码:sudo apt-get install gparted

这三个软件的不同之处主要在于直观性、易用性,fdisk可以说最难用,而cfdisk有了字符的界面,gparted则有了基于gnome的更漂亮的界面,从功能的角度上来说三个软件都差不多,但是有时不得不使用fdisk,这里我对三个软件的使用进行一定的说明:fdisk:代码:sudo fdisk -l会列出所有硬盘之实体使用情况。代码:sudo fdisk -l /dev/hda会列出第一快IDE硬盘的使用情况,响应的来讲可以换用/dev/sda等等。代码:sudo fdisk /dev/hda

进入硬盘分区模式,进入这个模式后所有操作不会立刻生效,只会在得到确认的命令后才会起作用。代码:

m 显示所有命令提示。
p 现实硬盘分区情况。
a 设定硬盘起动区。
n 设定新的硬盘分区。
l 列出所有文件系统类型。
e 在输入n的情况下才能用,指增加一个扩展分区。
p 在输入n的情况下才能用,指增加一个主要分区。
l 在输入n的情况下才能用,指增加一个逻辑分区。
t 改变硬盘分区属性。
d 删除硬盘分区。
q 结束但不对硬盘进行修改。
w 结束而且对硬盘进行修改。
现在对fdisk的结果进行详解,以下是在我的电脑上运行的例子:引用:

dongmh@home:~$ sudo fdisk -l /dev/hda

Disk /dev/hda: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1276 10249438+ 7 HPFS/NTFS
/dev/hda2 1277 7297 48363682+ f W95 Ext'd (LBA)
/dev/hda5 1277 2551 10241406 7 HPFS/NTFS
/dev/hda6 2552 3835 10313698+ 7 HPFS/NTFS
/dev/hda7 3836 3957 979933+ 82 Linux swap / Solaris
/dev/hda8 3958 4261 2441848+ 83 Linux
/dev/hda9 4262 4869 4883728+ 83 Linux
/dev/hda10 4870 7297 19502878+ 83 Linux
上面的提示表示,我的Ubuntu硬盘有60G,255个磁面,63个扇区,7297个磁柱;每个磁柱容量是8225280 Byte 大约是8225KB或者8MB。

Device Boot Start End Blocks Id System分区序列 引导 开始 终止 容量 分区类型ID 分区类型引导 表示引导分区,在上面的例子中 hda1 是引导分区;开始 表示的一个分区从X cylinder(磁柱)开始;结束表示一个分区到 Y cylinder(磁柱)结束;然后进入分区模式:

引用:

dongmh@home:~$ sudo fdisk /dev/hda

The number of cylinders for this disk is set to 7297.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):
上面的提示大概的意思就是我的Ubuntu硬盘大于1024个磁柱所以呢,老板本的lilo会不买我的帐,可以不用在意。我们先尝试命令d

引用:

Command (m for help): d
Partition number (1-10):
它问你要删除哪个分区,一定要注意,如果删了扩展分区,那么所有逻辑分区一块跟着挂,一定要小心。我输入7,再输入p就可以看到自己的Ubuntu硬盘分区少了一个。

接下来我添加一个逻辑分区:引用:

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (3836-7297, default 3836):3836
Last cylinder or +size or +sizeM or +sizeK (3836-3957, default 3957): 3957
这里的两个问题是,开始的磁柱是哪个,结束的磁柱是哪个。在结束的磁柱处可以用+sizeM +sizeK来输入。然后是对分区类型的改变,我输入t:
引用:

Command (m for help): t
Partition number (1-10): 7
Hex code (type L to list codes): L
输入L可以看到所有磁盘的文件类型列列表,然后再从输入相应的文件系统ID就可以对分区文件系统进行更改了。最后如果需要保存就输入w,不许要则输入q,这样分区修改就算结束了。

cfdisk、gparted:cfdisk有非常直观的界面,而gparted甚至是中文的,所以这里我就不再多作介绍。

三、Ubuntu硬盘格式化

分完区还不算完事,格式化后才能正常使用,这里介绍下Linux格式化命令:代码:sudo mkfs -t 文件系统存储设备格式化就是这么简单,或者也可一这样输入命令:代码:

sudo mkfs.ext3 /dev/sda6 把该设备格式化成ext3文件系统。
sudo mke2fs -j /dev/sda6 把该设备格式化成ext3文件系统。
sudo mkfs.ext2 /dev/sda6 把该设备格式化成ext2文件系统。
sudo mke2fs /dev/sda6 把该设备格式化成ext2文件系统。
sudo mkfs.reiserfs /dev/sda6 把该设备格式化成reiserfs文件系统。
sudo mkfs.vfat /dev/sda6 把该设备格式化成fat32文件系统。
sudo mkfs.msdos /dev/sda6 把该设备格式化成fat16文件系统,msdos文件系统就是fat16。
sudo mkdosfs /dev/sda6 把该设备格式化成fat16文件系统,同mkfs.msdos
sudo mkswap /dev/sda6 把该设备格式化成swap文件系统。
这样分好区,并且格式化结束,就可以进行挂载了。

四、Ubuntu硬盘挂载文件系统

挂载文件系统有两个方法,一种是利用mount命令,另外一种是修改/etc/fstab,因为修改/etc/fstab并不方便,所以我只介绍mount。mount命令的用法如下:
代码:sudo mount [-t 文件系统 ] [-o 选项] 设备 目录

使用这个命令前需要先生成一个用于被挂的目录,创建了这样的目录后有个细节问题就是更改这个目录的权限,最起码要你可读写,这样才能使你挂载的硬盘可读写,当然ntfs的硬盘除外。代码:chmod 777 目录

而挂载时,也有可以省事的地方,比如说你不知道你的分区是什么文件类型你可以:代码:sudo mount -t auto 设备目录或者也可以:代码:sudo mount 设备 目录顺便说下swap分区,一般不这样挂载,而采用加载命令进行加载:代码:sudo swapon 设备相应的也就产生了:代码:sudo swapoff 设备

五、Ubuntu硬盘对文件系统进行扫描

各 位朋友对Windows中的scandisk不寞生吧,在Linux中就有类似这样的工具fsck,不过fsck 可不仅仅是扫描,还能修正文件系统的一 些问题。一定要注意的是fsck 扫描文件系统时一定要在修复模式或把设备umount后进行,否则会有重大的问题发生。

其中fsck 默认支持 文件系统ext2,如果想支持ext3文件系统的扫描,应该加-j 参数,最好是我们应该根据不同的文件系统来调用不同的扫描工具,比 如 fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs。对于fsck.ext2和 fsck.ext3有几个常用参数,如下:代码:

-p 自动修复文件系统存在的问题;
-y 如果文件系统有问题,会跳出提示是否修复,如果修复请按y;
-c 对文件系统进行坏块检查;这是一个极为漫长的过程;
-n 不对文件系统做任何改变,只要扫描,以检测是否有问题;
那么使用它的方法就是:代码:sudo fsck.ext3 -p /dev/hda6任何对Ubuntu硬盘操作都是有危险的,千万不要随便练手,在可能的情况下尽量使用带有界面的gparted,不到万不得已不要随便格式化。这是为了你的数据和Ubuntu硬盘寿命着想。

❿ 请问Linux中怎么查看命令是否存在

find命令
find是linux下用于查找文件的通用方法。
find语法:
find
[指定查找目录]
[查找规则]
[查找完后执行的action]
例如:find
/tmp
-name
wa*
-type
l
,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。

阅读全文

与linux命令判断文件是否存在相关的资料

热点内容
现代钢琴教程pdf 浏览:25
客户端框架源码 浏览:210
python自动办公能干嘛 浏览:873
程序员追爱 浏览:252
程序员逻辑故事 浏览:768
加密icsot23i2c 浏览:713
你们有什么好的解压软件 浏览:607
常州空气压缩机厂家 浏览:241
安卓如何关闭app内弹出的更新提示 浏览:409
e4a写的app怎么装苹果手机 浏览:201
海立压缩机海信系 浏览:210
社保如何在app上合并 浏览:220
小米加密照片后缀 浏览:236
我的世界网易手机怎么创服务器 浏览:978
载入单页源码 浏览:930
阿里云服务器seo 浏览:777
海洋斗什么时候上线安卓 浏览:86
中行app如何查每日汇款限额 浏览:840
输入服务器sn是什么意思 浏览:725
sha1算法java 浏览:90