У меня есть папка, в которой у меня 20 разных файлов расширений, и я бы хотел переместить эти файлы в 3 разные папки. Теперь, как мне переместить все эти файлы (условия, на основе которых они попадают в папки, не важны), БЕЗ этих 3 подкаталогов, если они уже существуют? В данный момент я застрял в том, чтобы поместить эти подпапки в себя, и, очевидно, я не хочу, чтобы только те файлы, которые находятся на том же уровне, что и 3 подпапки, я хотел бы поместить в эти 3 подпапки. Спасибо!
Пс. Если я сосредотачиваюсь на * .txt в цикле for, он говорит мне, что не может его описать, поэтому я в замешательстве ..
X
|_A
|_B
|_C
|_file1.ext
|_file2.ext
|_file3.ext
.
.
.
|_file20.ext
Некоторые опции исключить подкаталоги:
так как Вы хотите переместить файлы с расширениями, изменением for i in *
кому: for i in *.*
(это может быть самой простой опцией, если ни одно из Ваших имен подкаталога не содержит a .
символ)
добавьте явный тест для типа файла напр. for i in *; do [[ -f "$f" ]] || continue; ...
(подобный вышеупомянутому) использование find . -maxdepth 1 -type f -exec ...
переключитесь на оболочку, которая поддерживает спецификаторы шарика, такие как zsh - где можно записать for f in *(.)
циклично выполняться по регулярным файлам только