Как мне пакетно переименовать определенный файл в нескольких zip-архивах через командную строку?

Я также могу подтвердить это, я пошел на мою страницу в facebook и перешел в общие настройки учетной записи и нашел имя пользователя, которое назначает facebook. Это длинная строка с http: // Единственное, что вам нужно - это часть, в которой у вас есть свое имя в конце. Я копирую и вставляю это в часть pidgin, где запрашивает имя пользователя и применяет его. Whola работает pidgin, который показывает контакты facebook. Надеюсь, это поможет кому-то ... Мир ....

2
задан 27 June 2012 в 08:30

15 ответов

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 25 July 2018 в 18:18

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 2 August 2018 в 00:31

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 4 August 2018 в 15:59

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 6 August 2018 в 00:38

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 7 August 2018 в 18:04

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 10 August 2018 в 06:51

Этот метод не переименовывает файл, но добавляет строчную версию файла .DIZ. Надеюсь, это будет достаточно для ваших целей.

Это использует функциональность zip «добавить по умолчанию», в которой, если вы укажете существующий zip-файл, он добавит в него файлы. Поэтому, если вы сделаете:

zip doom.zip file_id.diz

и doom.zip существует, он просто добавит файл file_id.diz к существующему содержимому.

Это нужно запустить в каталоге где находятся ваши zip-файлы:

for i in  *zip; do rm FILE_ID.DIZ;  unzip "$i" FILE_ID.DIZ; mv FILE_ID.DIZ file_id.diz; zip -d "$i" FILE_ID.DIZ; zip "$i" file_id.diz; done

Обратите внимание, что для достижения наилучших результатов ни одно из имен файлов .zip не должно содержать пробелов.

Вы также можете поместить это в файл, скажем , rename.sh (и это выглядит лучше и легче понять таким образом):

#!/bin/bash
for i in  *zip; do
   rm FILE_ID.DIZ
   unzip "$i" FILE_ID.DIZ
   mv FILE_ID.DIZ file_id.diz
   zip -d "$i" FILE_ID.DIZ
   zip "$i" file_id.diz
done

тогда вы можете запустить, сказав, например, bash rename.sh

2
ответ дан 15 August 2018 в 18:48
  • 1
    Спасибо! Это сработало отлично. Это отличная отправная точка для меня. Я собираюсь выяснить, смогу ли я выяснить, как написать скрипт для извлечения каждого архива во временную папку, скопировать FILE_ID.DIZ в file_id.diz, удалить FILE_ID.DIZ, повторно сжать файл и затем очистить временный каталог. – user73469 27 June 2012 в 17:48
  • 2
    Вы можете удалять файлы из zipfile напрямую с помощью zip -d. Я обновил скрипт, чтобы использовать эту функцию. Я советую вам делать резервные копии ваших оригинальных zip-файлов, всякий раз, когда мы удаляем файлы, это хорошая сеть безопасности :) – roadmr 27 June 2012 в 18:58
  • 3
    Это круто! Одна вещь, которую я заметил, заключается в том, что сценарий помещает копию файла «file_id.diz». в рабочем каталоге, а также создает файл с именем & quot; runzip.zip & quot; - Я назвал скрипт "runzip" из-за отсутствия творчества. Я только что добавил & quot; rm runzip.zip & quot; и & quot; rm file_id.diz & quot; и он позаботился об этом. – user73469 28 June 2012 в 21:10

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 25 May 2018 в 09:38

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 25 July 2018 в 18:18

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 2 August 2018 в 00:31

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 4 August 2018 в 15:59

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 6 August 2018 в 00:38

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 7 August 2018 в 18:04

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 10 August 2018 в 06:51

Вы можете использовать функцию переименования zipnote info-zip: http://www.info-zip.org/FAQ.html#rename

for zip_filename in *.zip; do
    # Only process original zip files.
    if [ "${zip_filename%.fixed.zip}" = "${zip_filename}" ] ; then
        # Create a copy which will be modified later.
        cp ${zip_filename} ${zip_filename%.zip}.fixed.zip

        # Get all filenames, change some of them on the fly and write them to the zip file.
        zipnote ${zip_filename} \
          | sed -e 's/^@ \(.*\)FILE_ID.DIZ/@ \1FILE_ID.DIZ\n@=\1file_id.diz/' \
          | zipnote -w ${zip_filename%.zip}.fixed.zip
    fi
done
0
ответ дан 15 August 2018 в 18:48

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

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