Я использовал терминал оболочки для переименования и перемещения файлов. Я скорее не эксперт. Я сделал ошибку (я полагаю, используя ctrl-v вместо cmd-v для вставки фрагмента текста в строку bash, установите неправильный символ в команде bash, но я не уверен). Полученная команда была выполнена и привела к неправильному именованию:

-rw-r--r-- 1 root root 312329 Jan 10 13:00 ??ping-reboot-log.txt.old2

Я пробовал несколько простых команд, которые я знаю, чтобы переименовать его должным образом, пытаясь обойти ведущие "??».

Вот что НЕ выполняет эту работу (может быть, это очевидно для многих из вас, опытных людей):

# mv \?\?ping-reboot-log.txt.old2 ping-reboot-log.txt.old2
mv: cannot stat `??ping-reboot-log.txt.old2': No such file or directory
#
# mv "??ping-reboot-log.txt.old2" ping-reboot-log.txt.old2
mv: cannot stat `??ping-reboot-log.txt.old2': No such file or directory
#
# rename 's/\?\?ping-reboot-log.txt/ping-reboot-log.txt/' *                   
# ls -la
total 628
drwxr-xr-x 2 root root   4096 Jan 10 13:10 .
drwxr-xr-x 8 root root   4096 Jun 24  2014 ..
-rw-r--r-- 1 root root 312329 Jan 10 13:00 ??ping-reboot-log.txt.old2

Что я наконец-то сделал после копания в Интернете:

# ls -il
total 620
15252 -rw-r--r-- 1 root root 312329 Jan 10 13:00 ??ping-reboot-log.txt.old2
#
# find . -inum 15252 -exec bash -c 'mv "$1" "ping-reboot-log.txt.old2"' -- {} \;
#
# ls -la
total 628
drwxr-xr-x 2 root root   4096 Jan 10 13:52 .
drwxr-xr-x 8 root root   4096 Jun 24  2014 ..
-rw-r--r-- 1 root root 312329 Jan 10 13:00 ping-reboot-log.txt.old2

Ура!

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

Как заранее узнать, какая команда bash будет неэффективна в обработке?"?

0