Как перемещаться по файлам с помощью результата «ls -al» в Linux?

Как написать сценарий для копирования файлов из одного каталога в другой каталог в соответствии с последней измененной датой?

Ls -al

-rw-r-r– 1 пользовательский пользователь 100 2011-05- 26 12:33 ABC1234 _frontcover_10344000_2011-05.doc

То, что я хочу сделать, состоит в том, что, используя вышеприведенную ABC1234_frontcover_10344000_2011-05.doc часть ls ABC1234_frontcover_10344000_2011-05.doc файл ABC1234_frontcover_10344000_2011-05.doc следует скопировать в /home/abcd/ABC1234/2011-05/26/ .

Должен быть какой-то способ сделать это, используя значение date -r $file +%m и basename *.doc | awk -F_ '{print $1}' basename *.doc | awk -F_ '{print $1}' . Помогите мне здесь, как?

One Solution collect form web for “Как перемещаться по файлам с помощью результата «ls -al» в Linux?”

Я только что потратил некоторое время, чтобы попробовать это, и придумал следующий скрипт:

 #!/bin/bash # set folder where files are located SOURCE_FOLDER=/path/to/source # define folder to which the files have to be copied TARGET_FOLDER=/home/abcd # #### cd "${SOURCE_FOLDER}" for FILE in *; do # everything which is not a normal file if [ ! -f "${FILE}" ]; then echo "Skipping non-file: '${FILE}'" continue fi # extract data from file structure FILE_DATE=$(date -r "$FILE" '+%Y-%m') FILE_DAY=$(date -r "$FILE" '+%d') FILE_PREFIX=${FILE%%_*} # skip files which do not match the naming convention if [ "${FILE_PREFIX}" = "" -o "${FILE_PREFIX}" = "${FILE}" ]; then echo "Skipping file with wrong naming: '${FILE}'" continue fi # create target folder TARGET="${TARGET_FOLDER}/${FILE_PREFIX}/${FILE_DATE}/${FILE_DAY}" echo "Copy '$FILE' to ${TARGET}" mkdir -p "${TARGET}" cp "$FILE" "$TARGET" done 

Он также охватывает несколько специальных случаев и проверок вероятности.

  • Почему не может быть -z быть последним вариантом командной строки, который будет использоваться с tar?
  • Является ли Aircrack-ng незаконным?
  • Интернет-киоск для мотеля?
  • Как переименовывать файлы с недопустимым кодированием или навалом-заменить неверные кодированные символы?
  • Как изменить консольную раскладку в Linux?
  • Изменить UUID под Linux?
  • Как использовать ffmpeg для кодирования файла с возможной ошибкой?
  • «Панический пароль» в Linux
  • Список доступных сетевых адаптеров в Linux
  • Ubuntu 10.04 Проблема с клавиатурой и мышью
  • Потерянное разрешение на использование команд sudo
  • Давайте будем гением компьютера.