We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now


SUSE 10.0 xargs and opening different file extensions

awakenings asked
Medium Priority
Last Modified: 2012-05-05
I am using SUSE 10.0.  I have some files that appear either as .zip or .txt randomly.  Each file has a date / time stamp connected to them.  They are in the following format.


    The "BOBapp04-04-2006@19-00-" are standard.  I can add in a date function to that portion of the file.  The 05 is the second and that seems to be random within 20 seconds depending on when the script actually runs.  I would like to determine if it is a txt or zip, extract if it is a zip, then change the file name to something that is not random (but keep the date functionality).

Does anyone have any recommendations?  I'm giving alot of points for this as I want to test the script to get it working before giving out the points!

Watch Question

Can you elaborate on "something that is not random" ?

Everything you mentioned so far is a one-liner.


I would love the file name to be;

BOBapp04-04-2006@19-00.txt for example.
for Z in *.zip; do unzip "$Z"; done
for T in *\@[0-9][0-9]-[0-9][0-9]-[0-9][0-9].txt; do \mv -i "$T" "${T%-??.txt}.txt"; done

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts



      I am testing things here.  You will have to forgive the fact I am a little slow.  I am a windows guy attempting to learn Linux.  I did some testing with some of this.  I could type in unzip BOBapp04-04-2006* and it would unzip the file.  I could type in mv BOBapp04-04-2006@15-00-??.txt app04-04-06.txt and the file would rename.  What I do not get is how do I collect random files and if they are zip, unzip and rename themthem and if they are txt file just rename them.  I was told the xargs command could do that.  Do you have another suggestions?

     I must admit I did not fully understand the statements above as I am no programmer.  How do I take this stuff and make it into a cron job?  I have the date functionality down so that will be easy.  I know how to do a cron job, but I am fuzzy on taking the random endings (txt or zip) and turn them into just functional txt file.  I then intend to run another cron job to run the files through swatch.  I am trying to automate a process to make things easier for me.


You would only need xargs if you are going to have more than 64 KB worth of filenames, at that point *.txt or *.zip will make the argument list too long.
If you run in to that problem, you could use these commands instead of my last example:

    find . -name \*.zip -print0 | xargs -0 -n1 unzip
    find . -name "*@[0-9][0-9]-[0-9][0-9]-[0-9][0-9].txt" -print0 | xargs -0 -n1 sh -c 'mv -i "$1" "${1%-??.txt}.txt"' none

> What I do not get is how do I collect random files and if they are zip

Shell wildcards let you pass filename(s) using wildcards.   Try this out:

    echo Hello World
    echo *.zip
    echo *.txt

Another method, usually used only when you're going to have massive amounts of files, is find piped to xargs.  E.g:

   find . -name "*.txt" | xargs echo
   find . -name "*.txt" | xargs -n1 echo

xargs takes the filenames piped to it and passes them to the command you specify, running the command multiple times if the argument list is too long.

To add the commands to a cron job, just put them in a shell script, chmod +x it, and specify the full path to it in your cron job.
To create a shell script, simply create a file, put the following line at the top:


and put your commands after it.   Since a cron job will start in your home directory, you'll probably need to have a cd command which changes to the directory where the files are located before executing your commands.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.