mv `Список аргументов слишком длинный` для одного файла

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

Запустите их как ./ scripts / scriptname и / или добавьте каталог скриптов в ваш PATH.

Если вы все еще хотите, чтобы Makefile запускал их, просто создайте записи Makefile, которые запускают ./ scripts / scriptname для этих целей. например

my-important-task: 
    ./scripts/my-important-task.sh my-parameter

ПРИМЕЧАНИЕ: Если сценарии в ./scripts вызывают другие сценарии в том же каталоге, им нужно будет либо указать полный путь к сценарию, либо иметь каталог сценариев в PATH.

4
16.08.2017, 17:36
2 ответа

E2BIG не является одной из ошибок, которые может возвращатьread(2) . Похоже на ошибку в ядре.

Чистое предположение, но это может быть связано с некоторым повреждением файловой системы и драйвером macOS для файловой системы FAT, возвращающим эту ошибку при обнаружении этого повреждения, что в конечном итоге приводит к возврату read.

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

Вы можете просмотреть журналы ядра, чтобы узнать, нет ли там дополнительной информации. Вы можете попробовать установить FS на другой ОС. Или используйте GNU mtoolsдля доступа к этой файловой системе FAT.

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

5
27.01.2020, 20:50

Выяснил, как решить эту проблему. Я установил GNU mvчерез macPorts. Этот mvсмог переместить файл с USB-накопителя на мой компьютер без возврата ошибки E2BIG. Хотел бы я, чтобы dtrussотредактировал его, чтобы посмотреть, как он справляется с возвратом ошибки из read.

Выяснилось, что указатель на файл был слегка поврежден — так что скопированный файл начинался на 128 КБ раньше, чем он должен был начинаться, но остальная часть файла была цела (конечно, последние 128 КБ также были отрезаны.)

Урок, который нужно усвоить: родные (BSD) утилиты на Mac работают по другому алгоритму, чем их аналоги GNU, поэтому, когда один терпит неудачу, всегда пробуйте другой.

2
27.01.2020, 20:50

Теги

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