Если вас не беспокоят файлы на новом жестком диске, почему бы вам не переформатировать диск и не установить на нем новый раздел NTFS.
Просто вытащите строку из и перезагрузите компьютер в Ubuntu. Откройте что-то вроде GParted и удалите существующие разделы с жесткого диска. Затем создайте новый тип NTFS. И, наконец, верните эту строку в /etc/fstab (первый, но с 0 в последнем столбце вместо 2:
UUID=48DCF742DCF728B8 /media/windows ntfs defaults 0 0
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
Использование find -exec должно работать, хотя оно будет рекурсивно проходить через подкаталоги, которые, в свою очередь, потерпят неудачу, если какой-либо из поддиректов будет содержать :
или ?
.
find . -name "*[:?]*" -exec rename 'y/:?/__/' {} +
argument list too long
, потому что *
распространяется на все 160k-файлы в каталоге, что превышает максимальную длину аргумента в вашей системе.
$ getconf ARG_MAX
2097152
Имена файлов 160k могут легко превышать 2MiB. Вы можете пропустить это путем переименования одного файла за раз
for file in ./*[:?]*; do
mv "$file" "${file//[:?]/_}"
done
или заполнить массив и обработать их в кусках. Насколько большой размер блока зависит от средней длины имен файлов и значения ARG_MAX; или просто установите достаточно низкое значение, чтобы быть безопасным, например. 1000:
files=( ./*[:?]* ) n=${#files[@]}
size=1000
for (( i=0; i<n; i+=size )); do
rename 'y/:?/__/' "${files[@]:i:size}"
done
Также см. BashFAQ 30 .
-maxdepth 1
. Это будет работать только с файлами в текущем каталоге. Кроме того, для файлов, содержащих ?
, он должен быть экранирован, например. find -name "*\?*"
. Оригинальный плакат не упоминал, если он заботился о подкаталогах; если нет, то решение find
кажется лучшим.
– roadmr
19 June 2012 в 18:49
-prune
, чем нестандартный -maxdepth
, но это главным образом потому, что я не работаю только с системами GNU / linux. И правильно, я забыл о ?
, я обновлю ответ, включив замену ?
.
– geirha
19 June 2012 в 19:44
for file in
...) запущен, мы увидим, как это получится. Спасибо за ответ.
– Whisperity
20 June 2012 в 00:39
Я использую это для массового переименования: vidir. Он использует более или менее тот же синтаксис, что и мы vi делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, например:
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
http://joeyh.name/code/moreutils/
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.
Я использую это для массового переименования: vidir
. Он использует более или менее тот же синтаксис, который мы vi
делает!
apt-get install moreutils
Перейти в каталог с файлами 160k
cd dir
Запустить vidir
vidir
Затем замените все: в имени файла с помощью -
: % s/:/-/g
Сделайте то же самое с другими странными символами, как?
: % s/?/-/g
Теперь сохраните файлы, используя: w
vidir позволяет редактировать содержимое каталога в текстовом редакторе.