ATTN: боги оболочки;) Я не могу показаться, чтобы выяснить, как удалить файл с юникода характеромКак удалить файл с «Символ NULL» символ (0x2400) в имени файла
0x2400 в имени файла в OSX (пример: ␀.test).
Это не символ NULL per se, а символ «null». (См: http://unicodelookup.com/#null/1)
Script - Как Репродуцировать
#!/usr/bin/env bash
dir="${HOME}/test_dir"
# Create Directory: ~/test_dir
if [ ! -d "${dir}" ]; then
printf "\nCreating Directory: ${dir}\n"
mkdir ${dir}
fi
# Create our character
char=$'\xE2\x90\x80'
# Create filename
file="${dir}/${char}.test"
# Create the File
printf "\nCreating File: ${file}\n"
touch ${file}
Удалить файл ... NOPE!
# Attempt 1 - Delete File
printf "\nDeleting File: ${file}\n"
rm -rf ${file}
Удалить весь каталог ... NOPE!
# Attempt 2 - Delete Directory
printf "\nDeleting Directory: ${file}\n"
rm -rf ${dir}
Удалить файл с помощью инода ... NOPE!
# Attempt 3 - Delete File
inode=$(ls -i1 ${dir} | awk '{print $1}')
printf "\nDeleting via Inode: ${inode}\n"
find ${dir} -inum ${inode} -exec rm -i {} \;
Весь сценарий должен вывести что-то вроде этого:
Creating File: /Users/bsmith/test_dir/␀.test
Deleting File: /Users/bsmith/test_dir/␀.test
rm: /Users/bsmith/test_dir/␀.test: Invalid argument
Deleting Directory: /Users/bsmith/test_dir/␀.test
rm: /Users/bsmith/test_dir/␀.test: Invalid argument
rm: /Users/bsmith/test_dir: Directory not empty
Deleting via Inode: 68592933
remove /Users/bsmith/test_dir/␀.test? y
rm: /Users/bsmith/test_dir/␀.test: Invalid argument
Если нет других файлов с этим суффиксом: 'гт .test' – Cyrus
не работает?: п.м: ␀.test: Недопустимый аргумент –
' гт -i * ', а затем просто сказать да к одному Вы заботитесь о? Хотя я бы предположил, что это то же самое, что и предложение Кирка. В любом случае, вне темы. Полагаю, возьмите его в суперпользователь или яблочный сайт. –