【发布时间】:2019-07-11 20:19:10
【问题描述】:
(Unix)
我在需要移动到存储目录的目录和子目录中有文件。文件夹结构为:
Main_folder: Folder1 > Inbox > File1
> Outbox
Folder2 > Inbox > File2
> Outbox
Folder3 > Inbox > File3
> Outbox
....
我只需要从收件箱文件夹中移动文件。我必须做一个循环吗?如果是这样,我将如何在现有脚本中添加循环?
谢谢。
我目前有 BASE_DIR="Main_folder/*/Inbox" 但它没有通过其余的文件夹?
#!/bin/bash
BASE_DIR="Main_folder/*/Inbox"
TARGET_DIR="$2"
find "$BASE_DIR" -type f -name "*.txt" | while IFS= read -r file; do
year="$(date -d "$(stat -c %z "$file")" +%Y)"
month="$(date -d "$(stat -c %z "$file")" +%m)"
day="$(date -d "$(stat -c %z "$file")" +%d)"
mv --backup=t "$file" "$TARGET_DIR/$year/$month/$day"
enter code here
done
【问题讨论】:
-
cd Main_folder; mv */Inbox/* "$TARGET_DIR/$year/$month/$day"怎么样?