Sponsored Content
Top Forums Shell Programming and Scripting Help with creating recursive unzip script Post 302698151 by Davinator on Saturday 8th of September 2012 12:35:22 PM
Old 09-08-2012
Help with creating recursive unzip script

Hello. I am trying to create a script that recursively looks at my folder structure, and extracts any .7z files that have not already been extracted yet. I know that all .7z files only have a single .txt file in them, and the only .txt file in any directory would be from that .7z file.

I am using 7-zip to extract all of the .7z files.

Here is an example directory structure.

Code:
./Folder/
./Folder/Subfolder 1/file A.7z
./Folder/Subfolder 1/file A.txt
./Folder/Subfolder 2/file B.7z

In this example, you can see that within Subfolder 2, the .7z file has not been unzipped, while it has within Subfolder 1. The Folder names and 7z names are variable, along with the depth of the directories.

Here's what I have so far, but I think I'm on the wrong track. So far I have a script that lists all folders that include a .7z file, but I can't figure out the rest. If you have a more efficient solution, I am completely open to it.

Code:
find . -type d | while read FOLDER
	do
		if ls -A "$FOLDER" | grep .7z > /dev/null
		then
			echo "$FOLDER"
		fi
	done

Any thoughts??
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

unzip in script using rsh

Hi I have searched usr/bin and usr/sbin to try to find unzip but I cannot find it. My script is using the ksh #!/usr/bin/ksh but when I rsh to another box it cannot find unzip to unzip to a new archive, but I can unzip files when I am using a telnet session on the box. The error message... (4 Replies)
Discussion started by: speedieB
4 Replies

2. HP-UX

How to Unzip a .ZIP file in Unix without using unzip cmd..?????

Hi All I have ftped a .ZIP file (zipped using WinZip in Windows) to my Unix server (HP-UX). I don't have unzip cmd available in my curent Unix version Please let me know any cmd in UNIX (other than unzip) using which I can unzip this .ZIP file . Please elaborate on the commands aval and... (5 Replies)
Discussion started by: sureshg_sampat
5 Replies

3. Shell Programming and Scripting

Recursive pid script

I'm trying to create a script that allows me to determine all the pid's that spawned from an original process(ie - who's running this command).... I've created a script that searches the processes running based on an argument passed the script. It then is to get the parent pid and look that... (3 Replies)
Discussion started by: jbarnhar
3 Replies

4. Shell Programming and Scripting

Shell script for unzip

All, I'm having 4 .zip files that are coming from FTP. I need to unzip those files and put that files into another folder. Can anyone help me how to write a shell script to check wether .zip files are located in FTP folder, if condition true then how to unzip and put it in another folder. Thanks in... (2 Replies)
Discussion started by: nvkuriseti
2 Replies

5. Shell Programming and Scripting

How to Unzip a .ZIP file in Unix without using unzip cmd..?????

Hi All I have ftped a .ZIP file (zipped using WinZip in Windows) to my Unix server (HP-UX). I don't have unzip cmd available in my curent Unix version Please let me know any cmd in UNIX (other than unzip) using which I can unzip this .ZIP file . Please elaborate on the commands aval and... (5 Replies)
Discussion started by: sureshg_sampat
5 Replies

6. Shell Programming and Scripting

help needed with creating challenging bash script with creating directories

Hi, Can someone help me with creating a bash shell script. I need to create a script that gets a positive number n as an argument. The script must create n directories in the current directory with names like map_1, map_2 etcetera. Each directory must be contained within its predecessor. So... (7 Replies)
Discussion started by: I-1
7 Replies

7. Shell Programming and Scripting

Unzip in bash script

My script works like this. 1. First for loop - checks if it can access zip parameters in a directory 2. If unzip fails for any of the file in that directory, then it goes inside the second for loop - to list which file is that 3. My doubt is..Is there any way I can tell status for every 5000... (17 Replies)
Discussion started by: vidhyamirra
17 Replies

8. Shell Programming and Scripting

help with recursive handbrake script

I have a batch of mkv video files I would like to transcode to a more compressed format. After spending a significant amount of time experimenting with various parameters I think I have found the handbrake settings that give the best compromise. I now want to construct a simple bash script... (4 Replies)
Discussion started by: jonesal2
4 Replies

9. Shell Programming and Scripting

Using Shell Script in place of Perl script to Unzip the zip files.

Hi Expert, We have some shell scripts which Internally uses Perl Script to Unzip the source zip files which comes to inbound directory. So now our requirement is to avoid the dependency on Perl Script and us Shell Script to unzip the files. I have the Perl script with me attached can some one... (3 Replies)
Discussion started by: naveen.dasu
3 Replies

10. Shell Programming and Scripting

Unzip the .zip file without using unzip utility in UNIX

I have .zip file, i want to list all the files archived in the zip file. unzip utility is not working for me in unix. Please help me resolve this issue Thanks ganesh. (3 Replies)
Discussion started by: Ganesh L
3 Replies
FOLDER(1)                                                            [nmh-1.5]                                                           FOLDER(1)

NAME
folder, folders - set/list current folder/message SYNOPSIS
folder [+folder] [msg] [-all | -noall] [-create | -nocreate] [-fast | -nofast] [-header | -noheader] [-recurse | -norecurse] [-total | -nototal] [-list | -nolist] [-push | -pop] [-pack | -nopack] [-print] [-verbose | -noverbose] [-version] [-help] folders is equivalent to folder -all DESCRIPTION
Since the nmh environment is the shell, it is easy to lose track of the current folder from day to day. When folder is given the -print switch (the default), folder will list the current folder, the number of messages in it, the range of the messages (low-high), and the cur- rent message within the folder, and will flag extra files if they exist. An example of this summary is: inbox+ has 16 messages ( 3- 22); cur= 5. If a +folder and/or msg are specified, they will become the current folder and/or message. By comparison, when a +folder argument is given, this corresponds to a "cd" operation in the shell; when no +folder argument is given, this corresponds roughly to a "pwd" operation in the shell. If the specified (or default) folder doesn't exist, the default action is to query the user as to whether the folder should be created; when standard input is not a tty, the answer to the query is assumed to be "yes". Specifying -create will cause folder to create new folders without any query. (This is the easy way to create an empty folder for use later.) Specifying -nocreate will cause folder to exit without creating a non-existant folder. Multiple Folders Specifying -all will produce a summary line for each top-level folder in the user's nmh directory, sorted alphabetically. (If folder is invoked by a name ending with "s" (e.g. folders), -all is assumed). Specifying -recurse with -all will also produce a line for all sub- folders. These folders are all preceded by the read-only folders, which occur as "atr-cur-" entries in the user's nmh context. For exam- ple: FOLDER # MESSAGES RANGE CUR (OTHERS) /var/work/folder has 35 messages ( 1- 35); cur=23. /usr/bugs/Mail has 82 messages ( 1-108); cur=82. ff has no messages. inbox+ has 16 messages ( 3- 22); cur= 5. mh has 76 messages (15- 76); cur=70. notes has 2 messages ( 1- 2); cur= 1. ucom has 124 messages ( 1-124); cur= 6; (others). TOTAL = 339 messages in 7 folders The "+" after inbox indicates that it is the current folder. The "(others)" indicates that the folder ucom has files which aren't mes- sages. These files may either be sub-folders, or files that don't belong under the nmh file naming scheme. The header is output if either a -all or a -header switch is specified. It is suppressed by -noheader. The folder and message totals are output if either a -all or a -total switch is specified. It is suppressed by -nototal. If -fast is given, only the folder name (or names in the case of -all) will be listed. (This is faster because the folders need not be read.) If a +folder is given along with the -all switch, folder will, in addition to setting the current folder, list the top-level subfolders for the current folder (with -norecurse) or list all sub-folders under the current folder recursively (with -recurse). If msg is supplied, together with +folder or without -all, it will become the current message of +folder (if it had been supplied) or the current folder. The -recurse switch lists each folder recursively, so use of this option effectively defeats the speed enhancement of the -fast option, since each folder must be searched for subfolders. Nevertheless, the combination of these options is useful. Compacting a Folder The -pack switch will compress the message names in the designated folders, removing holes in message numbering. The -verbose switch directs folder to tell the user the general actions that it is taking to compress the folder. The Folder Stack The -push switch directs folder to push the current folder onto the folder-stack, and make the +folder argument the current folder. If +folder is not given, the current folder and the top of the folder-stack are exchanged. This corresponds to the "pushd" operation in the shell. The -pop switch directs folder to discard the top of the folder-stack, after setting the current folder to that value. No +folder argument is allowed. This corresponds to the "popd" operation in the shell. The -push switch and the -pop switch are mutually exclusive: the last occurrence of either one overrides any previous occurrence of the other. Both of these switches also set -list by default. The -list switch directs folder to list the contents of the folder-stack. No +folder argument is allowed. After a successful -push or -pop, the -list action is taken, unless a -nolist switch follows them on the command line. This corresponds to the "dirs" operation in the shell. The -push, -pop, and -list switches turn off -print. FILES
$HOME/.mh_profile The user profile PROFILE COMPONENTS
Path: To determine the user's nmh directory Current-Folder: To find the default current folder Folder-Protect: To set mode when creating a new folder Folder-Stack: To determine the folder stack SEE ALSO
refile(1), mhpath(1) DEFAULTS
`+folder' defaults to the current folder `msg' defaults to none `-nofast' `-noheader' `-nototal' `-nopack' `-norecurse' `-noverbose' `-print' is the default if no -list, -push, or -pop is specified `-list' is the default if -push, or -pop is specified CONTEXT
If +folder and/or msg are given, they will become the current folder and/or message. BUGS
There is no way to restore the default behavior (to ask the user whether to create a non-existant folder) after -create or -nocreate is given. MH.6.8 11 June 2012 FOLDER(1)
All times are GMT -4. The time now is 11:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy