1.在终端输入一个文件名,判断文件是否为空,如果不为空,判断文件是否是普通文件,如果是普通文件,就判断是否具有写权限,没有写权限,就加上写权限,并在文件最后追加一行”hello world“
#!/bin/bash
cd ~/cbase/ctype/mon9/9.27/
a1=$1
a2="hello world"
if [ -s $a1 ]
then
echo "该文件不为空"
if [ -f $a1 ]
then
echo "该文件是普通文件"
fi
if [ -w $a1 ]
then
echo $a2 >> $a1
else
chmod u+w $a1
echo $a2 >> $a1
fi
fi
2.在家目录/home/ubuntu 下创建两个目录文件 file_dir 和 dir_dir,如果家目录下有这两个文件夹,就不需要创建,询问用户是否要对目录清空[Y/N], 输入一个文件路径,判断这个文件路径是否存在,如果存在,把这个目录下的目录文件复制到 dir_dir 中,如果是其他文 件,复制到 file_dir 下,统计复制的文件和目录文件的个数,并打印出来
#!/bin/bash
cd ~/
if [ -d file_dir ]
then
echo "file_dir 目录存在,无需创建"
echo "请问是否清空目录Y/N"
read -p "请输入Y/N" a
if [ $a == Y ]
then
echo "需要清空目录"
cd file_dir
rm -rf *
else
echo "不需要清空目录"
fi
else
echo "目录不存在,创建file_dir目录"
mkdir file_dir
fi
echo -e "\n"
cd ~/
if [ -d dir_dir ]
then
echo "dir_dir 目录存在,无需创建"
echo "请问是否清空目录Y/N"
read -p "请输入Y/N" b
if [ $b == Y ]
then
echo "需要清空目录"
cd dir_dir
rm -rf *
else
echo "不需要清空目录"
fi
else
echo "目录不存在,创建dir_dir目录"
mkdir dir_dir
fi
read -p "请输入路径" c
if [ -d $c ]
then
echo "正确路径"
cd $c
arr=(`find . -maxdepth 1 -type d`) #查看当前目录下深度为1的所有的目录文件
count=${#arr[@]}
for((i=1;i<count;i++))
{
cp -r ${arr[i]} /home/ubuntu/dir_dir
}
echo "目录文件复制移动成功"
arr1=(`find . -maxdepth 1 ! -type d`)
#查看当前目录下所有深度为1的不是目录的文件
count1=${#arr1[@]}
for((i=0;i<count1;i++))
{
cp ${arr1[i]} /home/ubuntu/file_dir
}
echo "其他文件复制移动成功"
else
echo "路径错误"
fi
count2=$((count-1))
echo 目录文件个数:$count2
echo 其他文件个数:$count1