перемещать файлы со специальными символами в новый каталог

Я пытаюсь написать цикл для скрипта, который проверяет конкретный каталог для любых специальных символов и перемещает эти файлы в конкретный каталог (кроме пробелов и дефис – они просто заменяются символами подчеркивания и хранятся в этом каталоге, и я получил этот скрипт сделан). Я просмотрел несколько возможностей, которые я нашел здесь, и переполнение стека, которые являются близкими совпадениями, но я не могу заставить их работать, как мне нужно.

for i in /home/*; do case $i in *\?*||*\**||*\$*||*\%*||*\.*||*\'*||*\"*||*\**||*\,* ) mv home/failed; esac done 

Это не должно быть ничего подобного, если есть более короткий или лучший способ достичь этого.

Спасибо заранее, вы, ребята, здорово! Я узнал больше практической информации об очистке Stack Overflow, U & L и т. Д., Чем научил меня BS в области ИТ.

2 Solutions collect form web for “перемещать файлы со специальными символами в новый каталог”

Здесь следует обратить внимание на то, что имена файлов unix могут содержать символы с любым 8-битным символьным значением, за исключением '/' и '\ 0'.

Если вы хотите переместить любой файл с символом, который не находится в [AZ] или [az] или подчеркивание, используйте следующее:

 for file in /home/*; do filename=${file##*/} [ -n "${filename//[A-Za-z_]/}" ] && mv "$file" failed/ done 

Он работает, сначала удалив путь к каталогу, оставив только имя файла. Затем он удаляет все «юридические» символы из имени файла. Если какие-либо символы остаются, то имя файла содержит незаконный символ и будет перемещен.

Это должно быть модифицировано для использования в скрипте, но если вы делали это из командной строки, вы можете сделать ls -i . Это даст индекс для каждого файла в каталоге. Из этого вы можете использовать find:

find ./ -i $INODE -exec mv {} <target> \;

  • Как я могу коснуться каждого файла в каталоге?
  • Сортировка и группирование доменов и поддоменов
  • Сценарий оболочки Bash для поиска и удаления подстроки в имени файла
  • Проверьте, имеют ли файлы в определенном каталоге надлежащее расширение?
  • Запустите сценарий оболочки и прочитайте вывод в переменной и запустите другой скрипт на основе вывода
  • Проблема при запуске скрипта
  • Что означает status_of_proc по скобкам-скобкам?
  • Присоедините два файла, соответствующие столбцу, с повторениями
  • У меня есть многострочная строка, которую мне нужно перебрать, но я не использую bash. Совет?
  • распечатать файл в шестнадцатеричном формате с помощью awk
  • подавлять сообщения stderr в сценарии bash
  • Linux и Unix - лучшая ОС в мире.