සැඟවුණු ලිපිගොනු නොමැතිව පර්යන්තය හරහා සම්පූර්ණ නාමාවලියක zip ලේඛනාගාරයක් නිර්මාණය කරන්නේ කෙසේද?


241

මා සතුව සැඟවුණු ෆෝල්ඩර / ලිපිගොනු විශාල ප්‍රමාණයක් ඇත. මට එහි zip- ලේඛනාගාරයක් සෑදීමට අවශ්‍යයි, නමුත් සංරක්ෂිතයේ සැඟවුණු ෆෝල්ඩර / ලිපිගොනු නොවිය යුතුය. සැඟවුණු ෆෝල්ඩරයක ගොනු සැඟවී නොමැති නම්, ඒවා ද ඇතුළත් නොකළ යුතුය.

මට මේ වගේ නාමාවලියක zip ලේඛනාගාරයක් සෑදිය හැකි බව මම දනිමි:

zip -r zipfile.zip directory

-X විකල්පය සමඟ ලිපිගොනු බැහැර කළ හැකි බව ද මම දනිමි, එබැවින් මෙය ක්‍රියාත්මක වනු ඇතැයි මම සිතුවෙමි:

zip -r zipfile.zip directory -x .*

එය ක්‍රියාත්මක වූයේ නැත. සැඟවුණු සියලුම නාමාවලි තවමත් සිප් ගොනුවේ ඇත.

Answers:


115

සැඟවුණු ලිපිගොනු වල සැඟවුණු ලිපිගොනු ද මෙය බැහැර කරයි:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@

4
ඔබගේ පිළිතුරට ස්තුතියි. ( find community-chess/ -path '*/.*' -prune -o -type f -print | zip ~/community-chess.zip -@) විධානය බලාපොරොත්තු වූවාට වඩා දිගු නමුත් එය හොඳින් ක්‍රියාත්මක වේ. උප බහලුම් ද ඇතුළත් වේ, එබැවින් +1 සහ පිළිගත් පිළිතුරක් :-)
මාටින් තෝමා

124

පළමුවෙන්ම ඔබ සිප් ස්ථාපනය කර නොමැති නම් පළමුව එය පහත පරිදි ස්ථාපනය කරන්න:

sudo apt-get install zip

සිප් ගොනුවක් සෑදීම සඳහා:

zip -r compressed_filename.zip foldername

සැඟවුණු ගොනු බැහැර කිරීමට ඔබට අවශ්‍ය නම්:

find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@

සිප් ලේඛනාගාරයකින් ගොනු බැහැර කිරීම ( http://osxdaily.com/2013/04/30/how-to-exclude-files-from-a-zip-archive/ වෙතින් ලබා ගත් )

සිප් ලේඛනාගාරයක් නිර්මාණය කිරීමේදී ගොනු බැහැර කිරීමේ මූලික කරුණු -xධජය වටා කේන්ද්‍රගත වී ඇති අතර , එය නිශ්චිත නමකට හෝ රටාවකට ගැලපෙන සංරක්ෂිතයෙන් ගොනු බැහැර කිරීමට භාවිතා කරයි. එය වඩාත් මූලික වශයෙන්, එය මේ ආකාරයෙන් පෙනෙනු ඇත:

zip archive.zip files -x "ExcludeMe"

ඔබට එක් ගොනුවක් බැහැර කළ හැකි යැයි අදහස් කරන්නේ, එය “Nothanks.jpg” ලෙස නම් කර ඇති බවයි.

zip archive.zip images/ -x "Nothanks.jpg"

මෙය ප්‍රයෝජනවත් වන නිශ්චිත උදාහරණ කිහිපයක් ආවරණය කරමු.

සිප් ලේඛනාගාරයෙන් .DS_Store ගොනු බැහැර කරන්න

සාමාන්‍යයෙන් නොපෙනෙන මැක් පාර-දත්ත .DS_Store ගොනු සිප් ලේඛනාගාරයකට ඇතුළත් කිරීමෙන් මෙය වළක්වනු ඇත , ඒවා පෙරනිමියෙන් එකතු වේ:

zip -r archivename.zip archivedirectory -x "*.DS_Store"

කෙසේ වෙතත් ඩිරෙක්ටරියට උප බහලුම් ඇතුළත් නම්, ds_store ගොනු උප බහලුම් වලින් බැහැර කිරීම සඳහා එම විධානයේ තවත් විචල්‍යතාවයක් භාවිතා කිරීමට ඔබට අවශ්‍ය වනු ඇත:

zip -r archive.zip directory -x "*/\.DS_Store"

සටහන: සෑම කවචයක් සඳහාම මෙම විධානය සඳහා උපුටා දැක්වීම් නිසියාකාරව ක්‍රියාත්මක වීමට අවශ්‍ය නොවේ, නමුත් බාෂ් කවචයේ (OS X සඳහා පෙරනිමිය) ඔබට ආදේශක කාඩ්පත් සහ රටා බැහැර කිරීම සඳහා මිල ගණන් භාවිතා කිරීමට අවශ්‍ය වනු ඇත.

Zip ලේඛනාගාරයකින් විශේෂිත ගොනු වර්ග බැහැර කරන්න

ආදේශක කාඩ්පත් සමඟ, දිගුව කෙරෙහි අවධානය යොමු කිරීමෙන් ඔබට එක්තරා ආකාරයක සියලුම ගොනු බැහැර කළ හැකිය. උදාහරණයක් ලෙස, මෙම විධානය මඟින් සම්පූර්ණ නාමාවලියක් සිප් කරනු ඇත, ඕනෑම .jpgලිපිගොනු us ණ කරයි:

zip -r archive.zip directory -x "*.jpg"

ගොනු නාමයකට ගැලපෙන ඕනෑම විශේෂිත ගොනු දිගුවක් හෝ රටාවක් සඳහා එය වෙනස් කළ හැකිය.

.Git හෝ .svn නාමාවලිය Zip ලේඛනාගාරයකින් බැහැර කරන්න

ඩිරෙක්ටරියක් සිප්, us ණ .gitසහ එහි අන්තර්ගතය:

zip -r zipdir.zip directorytozip -x "*.git*"

.svnනාමාවලිය ඇතුළත් නොකර ෆෝල්ඩරයක් සිප් කරන්න :

zip -r zipped.zip directory -x "*.svn*"

සියලුම සැඟවුණු ලිපිගොනු සිප් ලේඛනාගාරයකින් බැහැර කරන්න

රටා සහ ආදේශක භාවිතා කල හැකි බැවින්, ඔබ ද එය වැනි නාමාවලියක් වේවා, කාලයක් නමත් කරමින් විසින් එසේ සිදු කරන සියළුම හෝ කිසියම් හෝ නොපෙනෙන ගොනු සහ ෆෝල්ඩර ඉවත් කළ හැකි .svnහෝ වැනි තනි තනි ගොනු .bash_profileහෝ .htaccess.

zip -r archivename.zip directorytozip -x "*.*"

හෝ නොපෙනෙන සියලුම ගොනු සියළුම උප බහලුම් වලින් බැහැර කිරීමට:

zip -r archive.zip directory -x "*/\.*"

5
සෙසු උබුන්ටු පරිශීලකයෙකුට උදව් කිරීමට ඔබ දැරූ උත්සාහයට ස්තූතියි. පිළිගත් පිළිතුර නව පිළිතුරකින් නැවත සඳහන් කිරීම අවුල් ජාලයකට එකතු වන අතර ඉවත් කිරීම සඳහා සලකුණු කිරීමේ ඉහළ සම්භාවිතාවක් ඇති බව කරුණාවෙන් මතක තබා ගන්න.
hmayag

57

එකතු "කිරීමට .*(නැත්නම්, ඔබේ ෂෙල් පුළුල් වන .*වත්මන් බහලුම තුල එම තිතක් ගොනු කිරීමට), ද උප බහලුම් සඟවා ගොනු ඉවත්:

zip -r zipfile.zip . -x ".*" -x "*/.*"

මෙහි ප්‍රති result .ලය වනුයේ ඔබගේ zip ගොනුවට එකතු නොකිරීමට පටන් ගැනීමයි .

rinzwind@discworld:~/tmp$ ls -la
drwxr-xr-x  2 rinzwind rinzwind 4096 2011-08-28 00:15 tmp
drwxr-xr-x  2 rinzwind rinzwind 4096 2011-08-28 00:15 .tmp
rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x .*
adding: .tmp/ (stored 0%)
adding: tmp/ (stored 0%)
rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x ".*" -x "*/.*"
updating: tmp/ (stored 0%)

1
ඔබේ අවසාන ප්‍රකාශය නිවැරදි යැයි මම නොසිතමි. .*කවචයෙන් පුළුල් වේ.
හාමර්

1
මම හිතන්නේ එය නිවැරදි විය හැකි නමුත් මම එය ඉවත් කළෙමි (ඒ ගැන විශ්වාස නැත) :)
රින්ස්වින්ඩ්

මෙය ක්‍රියාත්මක වූයේ නැත. .Svn- නාමාවලි එකතු කරන ලදි
මාටින් තෝමා

1
osemoose බැහැර කිරීමේ රටාව ගොනු මාර්ග නාමයට පමණක් නොව සම්පූර්ණ මාර්ගයටම ගැලපේ, එබැවින් ඔබද බැහැර */.*කළ යුතුය .*( */හිස් නොවන නාමාවලි අනුක්‍රමයකට ගැලපේ).
ගිලෙස්ගේ SO- නපුර වීම නවත්වන්න '

කිසිවක් වෙනස් නොකර මෙය ක්‍රියාත්මක වේ! හොඳම පිළිතුර.
වයිට්කැට්

10

ආරම්භ කරන සියලුම ෆෝල්ඩර බැහැර කිරීම සඳහා උදාහරණය. :

tar cvpzf folder.tgz folder/ --exclude '.*'

වඩා හොඳ සම්පීඩනය නමුත් මන්දගාමී:

tar cvpjf folder.tar.bz2 folder/ --exclude '.*'

9

මෙයට "සියල්ල" ඇතුළත් වේ. නාමාවලි, උප බහලුම් සහ "." ඩිරෙක්ටරි තුළ ඇති ගොනු හෝ නාමාවලි ... අත්‍යවශ්‍යයෙන්ම පළමු පිළිතුර නමුත් ඉහළ මට්ටමේ "." ගොනු.

find /full_path -path '*.*/.*' -prune -o -type f -print | zip ~/file.zip -@

7

නිවැරදි ක්‍රමය වනුයේ:

zip -r zipfile.zip directory -x directory/.*

@downvoter: මොකක්ද වැරැද්ද, මේක මට වැඩ කරන බවක් පෙනේ.
jobin

රින්ස්වින්ඩ්ගේ මුල් පිළිතුරට සමාන ගැටලුවක් (දැන් නිවැරදි කර ඇත): ඔබ උප බහලුම් බැහැර නොකරයි. රින්ස්වින්ඩ් සඳහන් කළ පරිදි, ඔබට ආදේශක කාඩ්පත් උපුටා දැක්විය යුතුය, එසේ නොමැතිනම් කවචය ඒවා පුළුල් කරයි.
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

5

සමහර ගොනු දිගුව බැහැර කරමින් ඩර්ස් සිප් කරන අතරතුර:

$ cd /path/to/dir
$ zip -r dir.zip . -x "*.log" -x "*.cache"

4

ඩිරෙක්ටරියේ සැඟවුණු ෆෝල්ඩර සහ ගොනු නොමැතිව:

zip -r zipfile.zip directory/*

නාමාවලිය: |── .git │   ├── src │   └── Work.file ├── .test │   └── .file └── test.file

$ zip -r zipfile.zip directory/*
adding: directory/src/ (stored 0%)
adding: directory/src/Work.file (stored 0%)
adding: directory/test.file (stored 0%)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.