您好,我一直在想办法在我们的存档服务器中恢复我们的音频文件。它们分散在该服务器的几个子目录中,命名模式有所不同。它们大多位于“/media/recordings”目录中。
以下是我所说的几个例子。
YYYY_XXX) XXX-XXXX_20151125-094056_10931-all
YYYYYYY_XXX-XXX-XXXX _20151013-094634_10896-all
YYYY_(XXX) XXX-XXXX_20151116-120923_10215-all
YYYYY_ XXXXXXXXXX_20160307-152940_11033-all
音频文件都是 .wav 和 .mp3,它们的文件名中都有一个时间戳,我试图将其隔离并用作模型以切入 YYYY/MM/DD 以创建子目录。我读过一些其他人试图用 bash 组织那里的文件,并试图调整一些东西来工作,但似乎无法想出一个工作脚本。请帮忙。
我想从/media/recordings/MP3 和 ORIG 中复制此文件,不包括/media/recording/ORIG/sorted 到“/media/recordings/ORIG/sorted”作为目标位置。并按年/月/日子目录对这些文件进行排序。
这是一台装有 python 2.6.6 的较旧的 centos 机器。我试图调整一些可以转到目录并递归导航子目录的东西,但我的时间有限,无法解决这个问题,我们将不胜感激。
最佳答案
如果我了解您的需求:
#!/bin/bash
source_dir="/media/recordings"
dest_dir="/media/recordings/ORIG/sorted"
for file in ${source_dir}/{MP3,ORIG}/*; do
etime=$(stat -c %Y "$file")
fdate=$(date -d @$etime +"%Y-%m-%d")
if [[ ! -d "$dest_dir/$fdate" ]]; then
mkdir "$dest_dir/$fdate"
mv "$file" "$dest_dir/$fdate"
else
mv "$file" "$dest_dir/$fdate"
fi
done
该脚本将搜索 source_dir/MP3 和 ORIG 目录中的所有文件,并将它们移动到按日期排序的 dest_dir/YYYY-MM-DD 位置。文件名和目录名中不允许使用字符/。
$ tree media/recordings/ORIG/sorted
├── 2014-10-30
│ └── song.mp3
├── 2015-11-07
│ └── song.wav
├── 2015-11-12
│ └── another_song.mp3
├── 2017-07-11
│ └── another_song.wav
├── 2017-09-06
│ ├── song-1.mp3
│ ├── song-2.wav
│ └── song-3.mp3
关于python - 使用 python 或 bash 按时间戳将音频文件复制到新文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066134/