Linux shell 文件测试

一、检查目录
-d检查是否存在且是目录。

!/bin/bash

jump_directory=/home/arthur

if [ -d $jump_directory ]; then
echo "The $jump_directory directory exists."
cd $jump_directory
else
echo "The $jump_directory directory does not exists."
fi

sudo mkdir /home/arthur

二、检查对象是否存在
-e检查对象是否存在。

!/bin/bash

location=$HOME
file_name="sentinel"

if [ -e $location ]; then
echo "The \(location exists" echo "Now checking on the file,\)file_name"

if [ -e \(HOME/\)file_name ]; then
echo "OK,on the filename."
echo "Updating Current Date."
date >> \(location/\)file_name
else
echo "File \(location/\)file_name does not exists."
echo "Nothing to update."
fi
else
echo "The $location directory does not exists."
echo "Nothing to update."
fi

touch $HOME/sentinel

三、检查是否是文件
-f测试是否是文件

!/bin/bash

item_name=$HOME

echo
echo "The item being checked:$iem_name"
echo

if [ -e \(item_name ]; then echo "The item,\)item_name.does exists"
echo "But is it a file?"
if [ -f \(item_name ]; then echo "Yes,\)item_name is a file"
else
echo "No,\(item_name,is not a file" fi else echo "The item,\)item_name,does not exists"
echo "Nothing to update"
fi

修改:

item_name=$HOME/sentinel

四、测试文件否是可读
-r测试文件是否可读

!/bin/bash

file_item=/etc/shadow

if [ -f $file_item ]; then
if [ -r \(file_item ]; then echo "\)file_item is readable"
tail \(file_item else echo "\)file_item is not readable"
fi
else
echo "$file_item is not a file"
fi

五、检查空文件
-s检查文件是否为空

!/bin/bash

item_name=$HOME/sentinel

if [ -f $item_name ]; then
if [ -s \(item_name ]; then echo "\)item_name exist and it is a file,and has data in"
else
echo "No,$item_name is empty"
rm \(item_name fi else echo "The item,\)item_name,does not exists or is not a file"
echo "Nothing to update"
fi

六、文件是否可写
-w判断文件是否可写

!/bin/bash

item_name=$HOME/sentinel

if [ -f $item_name ]; then
if [ -w \(item_name ]; then echo "\)item_name is a file and is a writeable"
date +%H%M > \(item_name else echo "\)item_name is a not writeable file"
fi
else
echo "$item_name does not exists or it is not a file"
echo "Nothing to update"
fi

七、判断文件是否可执行
-x判断文件是否可执行

!/bin/bash

file_name=$HOME/sh/test16.sh

if [ -f $file_name ]; then
if [ -x \(file_name ]; then echo "\)file_name is a file and can executable"
\(file_name else echo "\)file_name can not executable"
fi
else
echo "$file_name does not exist or is not a file"
fi

八、测试文件属主和默认组
-O测试是否是文件属主。-G测试是不是文件默认组。-G比较只会检查默认组而非用户所属的所有组。

!/bin/bash

file_name=$HOME/sentinel

if [ -f $file_name ]; then
if [ -O $file_name ]; then
echo "The $file_name owner youself."
else
echo "The $file_name does not owner you."
fi

if [ -G \(file_name ]; then echo "You are in the same group as the file" else echo "The file is not owned by your group" fi else echo "\)file_name is not a file"
fi

九、检查文件日期
-nt比较会判定一个文件是否比另一个文件新。-ot比较会判定一个文件是否比另一个文件旧。

!/bin/bash

test18=\(HOME/sh/test18.sh test19=\)HOME/sh/test19.sh

if [ -e $test18 ] && [ -e $test19 ]; then
if [ $test18 -nt \(test19 ]; then echo "\)test18 is newer than \(test19" else echo "\)test19 is newer than $test18"
fi

if [ $test18 -ot \(test19 ]; then echo "\)test18 is older than \(test19" else echo "\)test19 is older than \(test18" fi else echo "\)test18,$test19, one of that does not exist"
fi

posted @ 2022-09-11 14:57  shigp1  阅读(529)  评论(0)    收藏  举报