टर्मिनल के माध्यम से सभी फ़ाइलों में एक्सटेंशन कैसे जोड़ें


14

मैं सभी फाइलों में .zip एक्सटेंशन जोड़ना चाहूंगा। मैंने यह कोशिश की, हालांकि यह काम नहीं करता है:

ls | awk '{print $1 " " $1".zip"}' | xargs mv -f

जवाबों:


5

खोज - कुछ लिंक:

  1. सभी फ़ाइलों के लिए पुनरावर्ती फ़ाइल एक्सटेंशन जोड़ें - स्टैक ओवरफ़्लो
  2. बैश - स्टैक ओवरफ्लो के साथ फाइलों में फाइल एक्सटेंशन जोड़ें

आदमी का नाम:

NAME
       rename - renames multiple files

SYNOPSIS
       rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPTION
       "rename" renames the filenames supplied according to the rule specified as 
       the first argument.  The perlexpr argument is a Perl expression which is 
       expected to modify the $_ string in Perl for at least some of the filenames 
       specified. If a given filename is not modified by the expression, it will not 
       be renamed.  If no filenames are given on the command line, filenames will be 
       read via standard input...

man wiki: http://en.wikipedia.org/wiki/Man_page


1
thx, उसके आधार पर मैं इसे इस तरह से करने में सक्षम था - ls | xargs -I% mv%% .zip
UAdapter


15
rename 's/$/\.zip/' *

xargsउस के लिए उपयोग न करें !


क्यों xargs का उपयोग नहीं करते?
UAdcape

2
अच्छा - कोई कारण नहीं है!
Adobe

4

ऐसा करने का एक बहुत ही सरल तरीका है:

यदि आप वर्तमान विस्तार रखना चाहते हैं:

for i in *; do mv $i ${i}.zip; done     

यदि आप वर्तमान एक्सटेंशन को बदलना चाहते हैं:

for i in *; do mv $i ${i%.*}.zip; done

0

यह काम कर जाना चाहिए:

mmv "./*" "./#1.zip"

(हालांकि मुझे नहीं पता कि आप ऐसा क्यों करना चाहेंगे ...)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.