shell判断文件创建时间为180天之前
时间: 2023-10-06 13:04:30 浏览: 78
要判断一个文件的创建时间是否为180天之前,可以使用 `find` 命令结合 `-ctime` 参数。
具体的命令如下所示:
```
find /path/to/dir -type f -ctime +180
```
其中,`/path/to/dir` 是需要查找的目录路径,`-type f` 表示只查找普通文件,`-ctime +180` 表示文件的创建时间早于180天前。如果要查找修改时间或访问时间早于180天前的文件,可以使用 `-mtime` 和 `-atime` 参数。
如果找到了符合条件的文件,`find` 命令会将文件的路径打印到终端上。如果需要对这些文件执行其他操作,可以使用 `-exec` 参数来指定需要执行的命令。例如,可以使用下面的命令将找到的文件删除:
```
find /path/to/dir -type f -ctime +180 -exec rm {} \;
```
这个命令会将所有创建时间早于180天前的文件都删除掉。需要注意的是,删除操作非常危险,请谨慎使用。
相关问题
Linux 写一个脚本 查询所有六个月之前的文件夹并压缩 压缩完成后发送到新建的文件夹下
### 回答1:
在 Linux 中, 你可以使用 `find` 命令来查找六个月之前的文件夹, 然后使用 `tar` 命令将其压缩. 然后使用 `mv` 命令将压缩文件移动到新建文件夹下.
脚本可能如下:
```bash
#!/bin/bash
# 新建文件夹
mkdir -p /path/to/new/folder
# 查找六个月之前的文件夹
old_folders=$(find /path/to/folders -type d -mtime +180)
# 遍历查找到的文件夹并压缩
for folder in $old_folders; do
tar -zcvf "$folder.tar.gz" "$folder"
done
# 移动压缩文件到新建文件夹
mv /path/to/folders/*.tar.gz /path/to/new/folder
```
在脚本中, /path/to/folders 是你要查找文件夹的路径, /path/to/new/folder 是你要存储压缩文件的新建文件夹的路径.
-mtime +180 代表 180天之前的修改时间
注意: 脚本在执行之前需要进行修改路径,请根据实际情况修改
### 回答2:
在Linux系统中,可以使用Shell脚本来实现查询所有六个月之前的文件夹并压缩,然后将压缩文件发送到新建的文件夹下。以下是一个示例脚本:
```shell
#!/bin/bash
# 定义六个月前的时间戳
six_months_ago=$(date -d "6 months ago" +"%s")
# 定义压缩文件输出目录
output_dir="compressed_folders"
# 创建压缩文件输出目录
mkdir -p "$output_dir"
# 遍历当前目录下的所有文件夹
for folder in */
do
# 判断文件夹的修改时间是否在六个月之前
modified_time=$(stat -c "%Y" "$folder")
if [ "$modified_time" -lt "$six_months_ago" ]; then
# 压缩文件夹
tar -czf "$output_dir/${folder%/}.tar.gz" "$folder"
fi
done
```
此脚本首先获取当前时间六个月前的时间戳,并创建一个目录用于存放压缩文件。然后,它遍历当前目录下的所有文件夹,获取文件夹的修改时间,并与六个月前的时间戳进行比较。如果文件夹的修改时间早于六个月前的时间戳,则将文件夹压缩为.tar.gz文件,并存放到压缩文件输出目录中。
你可以将以上代码保存为名为`compress_folders.sh`的文件,并在终端中运行`bash compress_folders.sh`来执行该脚本。执行完成后,六个月之前的文件夹将被压缩并存放到新建的"compressed_folders"文件夹下。
### 回答3:
要编写一个脚本来查询并压缩所有六个月之前的文件夹,并将压缩文件发送到一个新建的文件夹下面,可以按照以下步骤进行:
1. 首先,创建一个新的文件夹来存放压缩文件:
```
mkdir 新文件夹
```
2. 然后,使用find命令来查找所有六个月之前的文件夹,并压缩它们:
```
find 目标文件夹 -maxdepth 1 -type d -mtime +180 -exec tar -czvf {}.tar.gz {} \;
```
这里,目标文件夹是要查询的文件夹的路径,-maxdepth 1 表示只在目标文件夹下搜索,-type d 表示只查找文件夹,-mtime +180 表示查找六个月之前的文件夹,-exec tar -czvf {}.tar.gz {} \; 表示将找到的文件夹使用tar命令压缩并以文件夹名为文件名保存。
3. 最后,将压缩文件移动到新建的文件夹下面:
```
mv *.tar.gz 新文件夹
```
整个脚本的代码如下:
```bash
#!/bin/bash
# 创建新文件夹
mkdir 新文件夹
# 查找并压缩六个月之前的文件夹
find 目标文件夹 -maxdepth 1 -type d -mtime +180 -exec tar -czvf {}.tar.gz {} \;
# 移动压缩文件到新文件夹
mv *.tar.gz 新文件夹
```
将脚本保存为一个.sh文件,然后在终端中运行该脚本即可完成查询、压缩和文件移动的操作。
阅读全文