Как скопировать файлы с пунктуацией в них?

Инструмент Unity, скорее всего, из GNOME: gnome-power-statistics. Пакет назван gnome-power-manager, и я думаю, что версия MATE называется mate-power-statistics (и mate-power-manager).

0
задан 19 January 2018 в 23:03

4 ответа

Вы можете использовать следующий сценарий, предполагая, что хотите скопировать все файлы из каталога DIR1 в другой DIR2 на USB-ключ.

Если ваш выбор файла более сложный, вы можете адаптировать сценарий, например. используя find.

Если у вас есть другие незаконные символы, просто добавьте дополнительные команды sed.

#!/bin/bash DIR1=/path/to/origin DIR2=/path/to/target for file in `ls $DIR1` do newfile=`echo $file | sed 's/\./_stop_/g' | sed 's/,/_comma_/g'` cp $DIR1/$file $DIR2/$newfile done
1
ответ дан 17 July 2018 в 22:38

Если у вас есть такая же файловая система в исходном разделе (ваш внутренний диск) и целевой раздел (ваш USB-накопитель), копирование должно работать, по крайней мере, если вы ставите кавычки вокруг имен файлов.

Но рекомендуется избегать специальных символов в именах файлов (и я имею в виду символы со специальным значением в файловых системах, а также в программах оболочки и операционных системах, которые используются или будут использоваться).

Следующая ссылка помогает определить, какие символы можно использовать и какие символы следует избегать,

superuser.com/questions/358855/what-characters-are-safe-in-cross-platform- file-names-for-linux-windows-and-os

Резюме: Windows: все, кроме символов управления ASCII, и \ / : * ? " < > | Linux, OS-X: все, кроме нуля или / На всех платформах это лучше всего чтобы избежать непечатаемых символов, таких как символы управления ASCII. Я полагаю, что в Linux и OS-X только / для печатного набора ASCII запрещено. Некоторые символы (метасимволы оболочки, такие как * ? !) вызовут проблемы в командных строках и потребуют, чтобы имя файла было соответствующим образом процитировано или экранировано.
0
ответ дан 17 July 2018 в 22:38

Вы можете использовать следующий сценарий, предполагая, что хотите скопировать все файлы из каталога DIR1 в другой DIR2 на USB-ключ.

Если ваш выбор файла более сложный, вы можете адаптировать сценарий, например. используя find.

Если у вас есть другие незаконные символы, просто добавьте дополнительные команды sed.

#!/bin/bash DIR1=/path/to/origin DIR2=/path/to/target for file in `ls $DIR1` do newfile=`echo $file | sed 's/\./_stop_/g' | sed 's/,/_comma_/g'` cp $DIR1/$file $DIR2/$newfile done
1
ответ дан 24 July 2018 в 13:15
  • 1
    Выполняет ли это пунктуацию по мере ее копирования? – Barra 20 January 2018 в 22:57
  • 2
    Это скопирует файл с именем ,.., в _comma__stop__stop__comma_. – muclux 20 January 2018 в 23:03

Если у вас есть такая же файловая система в исходном разделе (ваш внутренний диск) и целевой раздел (ваш USB-накопитель), копирование должно работать, по крайней мере, если вы ставите кавычки вокруг имен файлов.

Но рекомендуется избегать специальных символов в именах файлов (и я имею в виду символы со специальным значением в файловых системах, а также в программах оболочки и операционных системах, которые используются или будут использоваться).

Следующая ссылка помогает определить, какие символы можно использовать и какие символы следует избегать,

superuser.com/questions/358855/what-characters-are-safe-in-cross-platform- file-names-for-linux-windows-and-os

Резюме: Windows: все, кроме символов управления ASCII, и \ / : * ? " < > | Linux, OS-X: все, кроме нуля или / На всех платформах это лучше всего чтобы избежать непечатаемых символов, таких как символы управления ASCII. Я полагаю, что в Linux и OS-X только / для печатного набора ASCII запрещено. Некоторые символы (метасимволы оболочки, такие как * ? !) вызовут проблемы в командных строках и потребуют, чтобы имя файла было соответствующим образом процитировано или экранировано.
0
ответ дан 24 July 2018 в 13:15

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

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