Рейтинг:1

Переместить файлы с расширением в другую структуру

флаг lk

мне нужно двигаться каждый файл.tif направлять ТИФФ внутри его родительского каталога.

 Â âââ 1
   â  âââ 240_01.tif
 240_02.TIF
 Â Â Â Â ââ ТЕСТ
  â  âââ syg_240_test_1.tif
 Â âââ 2-3
 â  âââ 2
  240_01.tif
 240_02.TIF
 â    âââ ТЕСТ
   â    âââ syg_240_test_1.tif
  â  âââ 3
   â  âââ 240_01.tif
 240_02.TIF
 Â Â Â Â ââ ТЕСТ
  â  âââ syg_240_test_1.tif
 Â âââ 4
 Â Â âââ 240_01.tif
 Â âââ 240_02.TIF
 Â Â ââ ТЕСТ
 Â âââ syg_240_test_1.tif

Например, это должно выглядеть так:

1
❗️ТЕСТ
â â  âââ syg_240_test_1.tif
ââ TIFF
âââ 240_01.tif
âââ 240_02.TIF
ââ 2-3
❗️ТЕСТ
â â  âââ syg_240_test_1.tif
ââ TIFF
 ââ 2
â â  âââ 240_01.tif
â â  âââ 240_02.TIF
ââ 3
âââ 240_01.tif
âââ 240_02.TIF
ââ 4
    ✓ ТЕСТ
    âââ syg_240_test_1.tif
    ââ ТИФФ
        âââ 240_01.tif
        âââ 240_02.TIF

я пытаюсь использовать mv /путь/*/*.tif/ /путь/*/TIFF/*.tif но это не работает.

флаг hr
Сложность здесь в том, что вам, кажется, нужны разные операции в зависимости от глубины файла (файлов) - как мы должны узнать ** программно **, следует ли перемещать файлы на один уровень или на 2? Что должно произойти с «другим» файлом `TEST/syg_240_test_1.tif` при объединении `2-3/2/TEST` и `2-3/3/TEST`?
Рейтинг:1
флаг cn

Еще раз, найти может прийти на помощь. Вы можете найти выборочно размолвка файлы в подпапках первого уровня, затем используйте -execdir Команда, которая перемещает найденный файл в папку TIFF в текущем каталоге.

Вы можете вызвать небольшой скрипт, который проверяет наличие папки TIFF или создает ее перед перемещением всех файлов TIFF, но в этот единственный раз, вероятно, проще работать в два этапа: 1) создать папку TIFF в любом из нужных вам папок и 2) переместите туда файлы TIFF

найти . -maxdepth 1 -type d -path '*/*' -exec mkdir {}/TIFF \;

найдет папки «1», «2» и т. д., если ваш текущий каталог содержит эти папки, и создаст каталог TIFF в каждом из них. Появится сообщение об ошибке, если папка TIFF уже существует.

Затем вторая команда может переместить все размолвка файлы во вновь созданные папки:

найти . -type f -ipath '*/*/*.tif' -execdir mv {} TIFF \;

Здесь мы ищем только файлы (-тип ф) в папках "1", "2" и т.д., но не ниже из-за шаблона файла (-ипат). -ипат в отличие от -дорожка указывает, что совпадение нечувствительно к регистру. -execdir action выполняет последующую команду, однако текущая папка является папкой найденного файла. {} обозначает найденный файл. Из-за -execdir, это только базовое имя файла. Файл будет перемещен в папку TIFF в текущей папке.

Пробелы в имени файла будут корректно обрабатываться {} токен.Кавычки вставлять не надо, хотя можно было бы.

mechmati avatar
флаг lk
После использования этой команды каталог `TIFF` находится на том же уровне, что и `1` `2-3` `3`, но он должен быть внутри них (1,2-3,4). У меня 1000 дир, ручная работа не лучшая идея..
Whois_me avatar
флаг us
Вы говорите 1000 дир, они все пронумерованы до 1000?
mechmati avatar
флаг lk
Каждый каталог имеет случайное имя
vanadium avatar
флаг cn
Конечно, вы должны начать с правильного каталога, потому что используются относительные пути. Или вам нужно адаптировать команду. Я тестировал их, поэтому для меня это сработало.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.