Найдите и замените имена папок и имена файлов с Windows несовместимые символы

Мой диск Ubuntu (18.04) синхронизируется с диском Windows. Некоторые мои имена папок и имена файлов в Ubuntu содержат символы, не позволенные в Windows, и это вызывает проблемы во время синхронизации. Я хочу найти эти символы и или удалить их из файла/имен папок или заменить эти символы "x".

Как я могу сделать это быстро?

Вот символы, запрещенные в Windows (изменены из ответа Christopher Oezbek):

< (less than)
> (greater than)
: (colon - sometimes works, but is actually NTFS Alternate Data Streams)
" (double quote)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
1
задан 6 December 2019 в 04:53

1 ответ

Попробуйте rename , Вы должны установить его сначала.

sudo apt-get install rename

Ниже пример, Вы можете измениться * туда, где Ваш файл/папка определил местонахождение.

~$ ls
'1<.txt'   3:.txt     '5\.txt'  '7??.txt'
'2>.txt'  '4"d".txt'  '6|.txt'  '8*.txt'

~$ rename -v 's/[?<>\\:*|\"]/x/g' *
1<.txt renamed as 1x.txt
2>.txt renamed as 2x.txt
3:.txt renamed as 3x.txt
4"d".txt renamed as 4xdx.txt
5\.txt renamed as 5x.txt
6|.txt renamed as 6x.txt
7??.txt renamed as 7xx.txt
8*.txt renamed as 8x.txt

~$ ls
 1x.txt   2x.txt   3x.txt   4xdx.txt  '5x.txt'   6x.txt   7xx.txt   8x.txt
1
ответ дан 7 December 2019 в 14:55

Другие вопросы по тегам:

Похожие вопросы: