2016-10-12 4 views
2

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 
+0

Если нет других файлов с этим суффиксом: 'гт .test' – Cyrus

+0

не работает?: п.м: ␀.test: Недопустимый аргумент –

+0

' гт -i * ', а затем просто сказать да к одному Вы заботитесь о? Хотя я бы предположил, что это то же самое, что и предложение Кирка. В любом случае, вне темы. Полагаю, возьмите его в суперпользователь или яблочный сайт. –

ответ

0

Эта команда работает для меня:

rm ?.test 

Но, к сожалению, весьма вероятно, что он не будет работать для тебя.

Это известная ошибка OSX:

Is it impossible to delete/move a file named “␀” on mac?

Rename folder with odd characters

Уверенное ставка для загрузки с флэш-накопитель с некоторыми ОС Linux, смонтировать файловую систему в таком Linux, и удалите файл. Уверен, что файлы с такими именами могут быть стерты в Linux.