shell脚本编程,实现如下,创建文件bak_log,且赋予写的权限 1)如果/tmp/bak_log是一个文件,则打印“/tmp/bak_log is a file”否则打印“No,/tmp/bak_log is not a file” 2)如果/tmp/bak_log是可写的,则打印“/tmp/bak_log is writable”且把当前时间的时分秒写入/tmp/bak_log中,否则打印“unable wirte to /tmp/bak_log”
时间: 2023-06-04 20:08:02 浏览: 105
我可以为您解答这个问题。请先输入以下命令来实现创建文件bak_log并赋予写的权限:
```
touch /tmp/bak_log
chmod +w /tmp/bak_log
```
然后运行以下脚本来实现您的需求:
```
#!/bin/bash
if [ -f /tmp/bak_log ]; then
echo "/tmp/bak_log is a file"
else
echo "No, /tmp/bak_log is not a file"
fi
if [ -w /tmp/bak_log ]; then
echo "/tmp/bak_log is writable"
echo $(date +"%H:%M:%S") >> /tmp/bak_log
else
echo "unable to write to /tmp/bak_log"
fi
```
运行脚本后,如果/tmp/bak_log是一个文件,则输出“/tmp/bak_log is a file”,否则输出“No, /tmp/bak_log is not a file”;如果/tmp/bak_log是可写的,则输出“/tmp/bak_log is writable”,并将当前时间的时分秒写入到文件中,否则输出“unable to write to /tmp/bak_log”。
相关问题
帮我写一个清理垃圾的shell脚本
以下是一个简单的清理垃圾的shell脚本,它可以删除指定目录下的一些文件和文件夹:
```bash
#!/bin/bash
# 定义要清理的目录
dir_to_clean="/tmp/mydir"
# 删除指定目录下的所有 *.log 文件
find $dir_to_clean -type f -name "*.log" -delete
# 删除指定目录下的所有 *.tmp 文件
find $dir_to_clean -type f -name "*.tmp" -delete
# 删除指定目录下的所有 .DS_Store 文件
find $dir_to_clean -type f -name ".DS_Store" -delete
# 删除指定目录下的所有空文件夹
find $dir_to_clean -type d -empty -delete
echo "清理完成!"
```
你可以根据自己的需求修改代码中的目录和文件类型。例如,如果你想删除扩展名为 .bak 的文件,可以将 `-name "*.tmp"` 改为 `-name "*.bak"`。如果你想删除所有的 .DS_Store 文件,可以将 `-name ".DS_Store"` 改为 `-name "*DS_Store*"`。
用shell帮我写一个磁盘清理脚本
以下是一个简单的磁盘清理脚本示例,可以通过定义阈值来删除旧的或不必要的文件。脚本会遍历指定目录并删除特定扩展名或文件类型的文件。
```sh
#!/bin/bash
# 定义目标目录和阈值值
dir="/path/to/directory"
threshold=80
# 遍历目标目录
for file in "$dir"/*
do
# 判断文件是否为文件夹或者符号链接,如果是则跳过此次循环
[ -d "${file}" ] || [ -L "${file}" ] && continue
# 获取文件的大小和最后修改时间
size=$(du -sh "${file}" | awk '{print $1}')
last_modified=$(stat -c '%y' "${file}")
# 检查是否应该删除文件
if [ "$(df -P "${file}" | awk 'NR==2 {print $5+0}')" -gt "${threshold}" ] && [[ "${file}" = *".log" ]] || [[ "${file}" = *".bak" ]] || [[ "${file}" = *".tmp" ]] || [[ "${file}" == *"core."* ]]; then
echo "Deleting ${file} (size:${size}, last modified:${last_modified})"
rm -f "${file}"
fi
done
echo "Disk cleaning completed!"
```
这个脚本遍历“/path/to/directory”目录中的所有文件,并按大小和最后修改时间进行排序(最近修改的文件将不会被删除)。只有当文件大小达到阈值,并且文件名包含“.log”,“.bak”,“.tmp”或以“core.”开头时,才会删除它。删除命令使用“rm -f”来避免交互式确认。
要使用脚本,请将其保存为文件(例如“disk_clean.sh”),将“/path/to/directory”替换为要清理的目标目录,将“threshold”替换为阈值以及要检查和删除的文件类型,然后运行以下命令:
```
chmod +x disk_clean.sh
./disk_clean.sh
```
阅读全文