LINUX.ORG.RU
ФорумTalks

Кто чем заменяет пробелы в именах файлов?

 ,


0

2

Вообще хочется нормально писать с пробелами. Но тогда вылезают все эти экранирования, слеши , кавычки и прочие проблемы. Особенно в скриптах.
Варианты
* имяФайла - так себе, писать не удобно, вырвиглаз читать. Годится только для ЯП
* имя-файла - типа лисп
* имя_файла - ужас

★★★★

имя_файла - ужас

bga_ ★

greenman ★★★★★
()

Не занимаюсь таким глупостями и называю файлы с пробелами.

kirk_johnson ★☆
()
  • имяФайла - так себе, писать не удобно, вырвиглаз читать. Годится только для ЯП

Попробуй ИмяФайла, мне норм.

А вообще да, прямо напасть какая-то. Куча софта в Linux не умеет работать с пробелами или спотыкается на Unicode, хотя на дворе 2019 год.

Особенно скрипты этим грешат. Но там-то понятно почему, ведь Bash – полное говно.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Куча софта в Linux не умеет работать с пробелами

Можно хоть один пример? Всю дорогу использовал пробелы в именах, никогда проблем не попадалось.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Меня VirtualBоx постоянно задалбливал. Не мог сохранять скриншоты в такие папки.

На 5.x уже привык, что не может. Сейчас проверил - работает.

Какой-то hex редактор (wxHexEditor кажись) не мог года два назад (искал замену обмазанному mono Bless), и наткнулся.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)

Исполняемые файлы через -, ибо _ сложнее достижим и выглядит в этом случае тупо. Расширения у скриптов, которые попадают в PATH, я, кстати, отрезаю. Всё остальное через underscore.

WitcherGeralt ★★
()

Вообще хочется нормально писать с пробелами. Но тогда вылезают все эти экранирования, слеши , кавычки и прочие проблемы. Особенно в скриптах.

И ты решил костылить. Молодец, лучшее решение.

Deleted
()

Подчеркиванием, ясный пень.

У меня есть скриптик, который я лет 15 назад написал, чтобы рекурсивно все неправильные символы заменять на правильные: пробелы и табуляции — на подчеркивание, кириллицу — на транслит, прочую фигню — на какую-нибудь «решетку».

Eddy_Em ☆☆☆☆☆
()

Вариант три приемлим. В основном же пробелы. Компьютер должен подстраиваться под человека, не наоборот.

FedyaPryanichkov ★★
()
Ответ на: комментарий от WitcherGeralt

Ладно, я и сам иной раз зачем-то директории кириллицей называю. Потом, когда у какой-нибудь иксовой софтины диалог открытия падает и не может открыть файл, ругаю себя семиэтажным матом и переименовываю все как надо!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от EXL

Ну, понятно, что виноваты рукожопые разработчики культяпок и говнотыков, заполонивших десктоп.

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

Eddy_Em ☆☆☆☆☆
()

Кто чем заменяет пробелы в именах файлов?

«_».

Deleted
()
Ответ на: комментарий от EXL

По ссылке вижу, что у кого-то какой-то сборочный скрипт кривой (причём, из сообщения не понятно, чей — то ли валвовский, то ли нвидиавский, то ли самого автора). А пример софта-то будет?

Куча софта в Linux не умеет работать с пробелами

gremlin_the_red ★★★★★
()
Ответ на: комментарий от Eddy_Em

Директории никогда по-русски не называл, а какой-нибудь медиаконтент у меня спокойно может храниться в файлах и с кириллицей и с пробелами в названиях. Транслит же — дело последнее.

Пока писал, понял, что вру: https://x1site.ru/745

Но это, по-моему, единственное исключение. Дело привычки, наверное, книги на полке же не переименуешь.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Вот тебе два полезных скрипта:

rmspaces
for Name in `ls -1`
do
    Newname=`echo "$Name"| enconv | sed -e \
    "y/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/"\
    -e "s/ц/tz/g"	\
    -e "s/ш/sh/g"	\
    -e "s/щ/sch/g"	\
    -e "s/ж/zh/g"	\
    -e "s/ч/ch/g"	\
    -e "s/ю/yu/g"	\
    -e "s/я/ya/g"	\
    -e "s/ё/yo/g"	\
    -e "s/Ё/YO/g"	\
    -e "s/Ц/TZ/g"	\
    -e "s/Ш/SH/g"	\
    -e "s/Щ/SCH/g"	\
    -e "s/Ж/ZH/g"	\
    -e "s/Ч/CH/g"	\
    -e "s/Ю/YU/g"	\
    -e "s/?/_/g"	\
    -e "s/Я/YA/g"`
    if [ "$Name" != "$Newname" ]; then
        mv "$Name" "$Newname"
	echo -e "$Name   ->    $Newname                             \r\c"
    fi
    if [ -d "$Newname" ]; then
	cd "$Newname"
	echo -e "\n\nDiving into $Newname"
	rename_translit
	cd ../
    fi
done
и rmspaces:
ls -1 | while read file; do 
        new=$(echo "$file"|tr " " "_");
        echo ". $file -> $new"
        if [ "$new" != "$file" ]; then
                echo ".$file  RENAMED INTO   $new"
                mv ".$file" "$new"
        fi

done
Без них лично мне жить очень тяжко было бы! Иной раз как распакуешь...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от gremlin_the_red

Да. QMake в Qt Creator, например, до сих пор имеет проблемы с пробелами. Часто сталкивался, но проблема ушла, когда перестал использовать пробелы.

EXL ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Можно подключить переводчик и автоматом русские слова на английский переводит.

Но транслит намного лучше, чем кириллица! Очень мало осталось иксовых утилит, не базирующихся на всяком говне вроде культяпок или говнотыков. А культяпко-говнотыки не умеют работать с файлами с кириллицей.

Eddy_Em ☆☆☆☆☆
()

Ясен пень «_»

У тебя с этим символом какая-то психологическая травма из детства?

HIS
()

Вообще хочется нормально писать с пробелами

Пиши, в чём проблема?

тогда вылезают все эти экранирования, слеши , кавычки и прочие проблемы. Особенно в скриптах

Не пользуйся кривыми скриптами и сам не делай.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

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

Eddy_Em ☆☆☆☆☆
()

Пишу пробелы пробелами, чай не в MS-DOS с ограничением 8.3

Экранирования, слеши и кавычки в консолечке пишутся сами, автодополнением по TAB

TheAnonymous ★★★★★
()
Последнее исправление: TheAnonymous (всего исправлений: 1)

Точка или подчеркивание.

targitaj ★★★★★
()

Когда это действительно нужно, то естественно _

neocrust ★★★★★
()
Ответ на: комментарий от EXL

Мимо кассы же.
Хотя, вот если бы у них в пути где-то были бы пробелы, то аргумент rm пришлось бы писать в кавычках, и баг был бы неинтересный.

TheAnonymous ★★★★★
()
Ответ на: комментарий от TheAnonymous

Если бы скрипт писался на Python, этой проблемы бы не возникло, например.

EXL ★★★★★
()
Ответ на: комментарий от EXL

То есть из всей «кучи софта в Linux», который «не умеет работать с пробелами», ты нашёл только кроссплатформеный qmake? Притом, что косяки в сборочных системах вполне понятно, откуда берутся — всё таки многие языки родом из тех времён, когда не то, что пробелов, тогда вообще с именами файлов все грустно было, поэтому никто никогда и не вводил в языки конструкции вида #include <my libs/useful library.header>, поэтому и десятилетиями в сорцах пробелов в именах не было.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Да, вспомнил только его, но были ещё некоторые девелоперские утилиты, которые не могли работать если в пути содержался пробел, после я выработал привычку не использовать пробелы вообще и забыл про эти проблемы.

P.S. Тут в треде ещё напомнили про VirtualBox, там тоже были некоторые траблы с сабжем.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Тут в треде ещё напомнили про VirtualBox

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

gremlin_the_red ★★★★★
()

Пиши с пробелами. Машина для человека или человек для машины, в конце концов?

Но тогда вылезают все эти экранирования, слеши , кавычки и прочие проблемы. Особенно в скриптах.

""

Im_not_a_robot ★★★★★
()
Последнее исправление: Im_not_a_robot (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Не увиливай, я нигде не говорил, что в пробелы не может ЭКСКЛЮЗИВНЫЙ софт под Linux.

P.S. вот вспомнил обосрамс ещё один: Code::Blocks / g++: fatal error. Помогите решить проблему (комментарий)

Х.з. кто там виноват Code::Blocks или GCC.

EXL ★★★★★
()
Ответ на: комментарий от Eddy_Em

Транслит надо в UPPERCASE и код Бодо, а то вдруг где-то байт 5-и битам окажется равен. А лучше вообще все буквы на цифры, что-б уж наверняка.

thunar ★★★★★
()

По-старинке подчёркиванием, привык уж.

Хотя дефисом получше, шифт не надо жать.

K39
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.