Sponsored Content
Top Forums Shell Programming and Scripting Archive different folders based on their names Post 302460923 by vilibit on Friday 8th of October 2010 02:49:42 AM
Old 10-08-2010
Bug

The final version:

Code:
cd $rootpath

ls -l|grep back_ |awk '/^d/ {print $NF}'  |while read dir
do
  cd ${rootpath}/${dir}
  ls -l |awk '/^d/ {print $NF}' |while read subdir
  do
     tar cvf - ${subdir} |gzip > ${subdir}_${dir#*_}.tar.gz   # or replace by below command, if you have gtar
#   gtar zcvf ${subdir}_${dir#*_}.tar.gz ${subdir}
     rm -rf $subdir
  done
  cd $rootpath
done
rename back_ back. back_*

All subfolders are deleted and main folders are renamed to not be procesed on next run.

Last edited by vilibit; 10-08-2010 at 05:32 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

script to archive certain folders in a hierarchy

I'm new to shell scripting and I'm having a tough time figuring out how to script something. Can anyone help? Here is my setup and what I want to do: A directory contains a list of projects by year (2000, 2001, etc) and customers (01-001) all of which have the same internal directory setup... (3 Replies)
Discussion started by: medazinol
3 Replies

2. UNIX for Dummies Questions & Answers

Copying multiple folders to local machine (don't know folder names)

Hi. I'm trying to copy multiple folders from the remote machine to the local machine. I wrote a batch file to run an ftp window. The problem I am having is that the only command to copy files is mget *, and this copies only files, not folders. For example, ftp ts555 cd ts555/test ' test... (5 Replies)
Discussion started by: leenyburger
5 Replies

3. UNIX for Dummies Questions & Answers

How to Archive Folders in T-Shell

Hi i am new to Unix Shell Programming... i m just a beginner and i m training myself in Unix.... I need a sample code to archive folders in my Windows OS using Unix commands... Can someone Help me? (1 Reply)
Discussion started by: aegan
1 Replies

4. Shell Programming and Scripting

Archive files to different target folders based on criteria

Hi All, I am creting archive script in which i need to split the source file's to different target folder's based on the input file name first character. Input1.txt -- will contains file names that are needs to be Archive. Input1.txt A1213355 B2255666 C2254555 A6655444 C5566445 ... (2 Replies)
Discussion started by: kmsekhar
2 Replies

5. Shell Programming and Scripting

Ordering Folders having Date as Names

Hi All, I have directories under /development/arun/weekly/ 20120421 20120414 . . . . I need to arrange these directories in descending order. folder name with recent date will be on top and then others. (1 Reply)
Discussion started by: Arun Mishra
1 Replies

6. OS X (Apple)

Remove leading spaces from file names and folders

Hi All, I have a vexing issue with leading spaces in file names. Basically, we're moving tons of data from our ancient afp file share to Box.com and Box forbids leading spaces in files or folders. The HFS file system seems to be perfectly fine with this, but almost all other Unix file systems... (1 Reply)
Discussion started by: prometheon123
1 Replies

7. Shell Programming and Scripting

Files with same names in different folders

Hello, I am looking for a command line that can do some operations on two files that have the same names but in different folders. for example if folder A contains files 1.txt, 2.txt, 3.txt,.. folder B contains files 1.txt, 2.txt, 3.txt,.. If I would like to concatenate the two files... (6 Replies)
Discussion started by: Mohamed EL Hadi
6 Replies

8. UNIX for Dummies Questions & Answers

Archive folders and sub folders

Hi Can i archive folder and folders in with the tar command My files are located in subfolders Eg: Folder1/Folder1_1/*.pdf Folder1/Folder1_2/*.pdf Folder1/Folder1_3/*.pdf so i would like to tar all the files in Folder1_1 and Folder1_2 only not Folder1_3 that should be done next... (2 Replies)
Discussion started by: cnrj
2 Replies

9. UNIX for Dummies Questions & Answers

Allocating names to folders based on a file

Hi everyone, I have a problem and I would be gratful if you can help. I have set of folders with files in them. e.g. data1, data2, data3 and I have a json file with info ... looking like this I want to rename my files to replace the data with their gender to some processing and back to... (8 Replies)
Discussion started by: A-V
8 Replies
Template::Plugin::Directory(3)				User Contributed Perl Documentation			    Template::Plugin::Directory(3)

NAME
Template::Plugin::Directory - Plugin for generating directory listings SYNOPSIS
[% USE dir = Directory(dirpath) %] # files returns list of regular files [% FOREACH file = dir.files %] [% file.name %] [% file.path %] ... [% END %] # dirs returns list of sub-directories [% FOREACH subdir = dir.dirs %] [% subdir.name %] [% subdir.path %] ... [% END %] # list returns both interleaved in order [% FOREACH item = dir.list %] [% IF item.isdir %] Directory: [% item.name %] [% ELSE %] File: [% item.name %] [% END %] [% END %] # define a VIEW to display dirs/files [% VIEW myview %] [% BLOCK file %] File: [% item.name %] [% END %] [% BLOCK directory %] Directory: [% item.name %] [% item.content(myview) | indent -%] [% END %] [% END %] # display directory content using view [% myview.print(dir) %] DESCRIPTION
This Template Toolkit plugin provides a simple interface to directory listings. It is derived from the Template::Plugin::File module and uses Template::Plugin::File object instances to represent files within a directory. Sub-directories within a directory are represented by further "Template::Plugin::Directory" instances. The constructor expects a directory name as an argument. [% USE dir = Directory('/tmp') %] It then provides access to the files and sub-directories contained within the directory. # regular files (not directories) [% FOREACH file IN dir.files %] [% file.name %] [% END %] # directories only [% FOREACH file IN dir.dirs %] [% file.name %] [% END %] # files and/or directories [% FOREACH file IN dir.list %] [% file.name %] ([% file.isdir ? 'directory' : 'file' %]) [% END %] The plugin constructor will throw a "Directory" error if the specified path does not exist, is not a directory or fails to "stat()" (see Template::Plugin::File). Otherwise, it will scan the directory and create lists named '"files"' containing files, '"dirs"' containing directories and '"list"' containing both files and directories combined. The "nostat" option can be set to disable all file/directory checks and directory scanning. Each file in the directory will be represented by a Template::Plugin::File object instance, and each directory by another "Template::Plugin::Directory". If the "recurse" flag is set, then those directories will contain further nested entries, and so on. With the "recurse" flag unset, as it is by default, then each is just a place marker for the directory and does not contain any further content unless its "scan()" method is explicitly called. The "isdir" flag can be tested against files and/or directories, returning true if the item is a directory or false if it is a regular file. [% FOREACH file = dir.list %] [% IF file.isdir %] * Directory: [% file.name %] [% ELSE %] * File: [% file.name %] [% END %] [% END %] This example shows how you might walk down a directory tree, displaying content as you go. With the recurse flag disabled, as is the default, we need to explicitly call the "scan()" method on each directory, to force it to lookup files and further sub-directories contained within. [% USE dir = Directory(dirpath) %] * [% dir.path %] [% INCLUDE showdir %] [% BLOCK showdir -%] [% FOREACH file = dir.list -%] [% IF file.isdir -%] * [% file.name %] [% file.scan -%] [% INCLUDE showdir dir=file FILTER indent(4) -%] [% ELSE -%] - [% f.name %] [% END -%] [% END -%] [% END %] This example is adapted (with some re-formatting for clarity) from a test in t/directry.t which produces the following output: * test/dir - file1 - file2 * sub_one - bar - foo * sub_two - waz.html - wiz.html - xyzfile The "recurse" flag can be set (disabled by default) to cause the constructor to automatically recurse down into all sub-directories, creating a new "Template::Plugin::Directory" object for each one and filling it with any further content. In this case there is no need to explicitly call the "scan()" method. [% USE dir = Directory(dirpath, recurse=1) %] ... [% IF file.isdir -%] * [% file.name %] [% INCLUDE showdir dir=file FILTER indent(4) -%] [% ELSE -%] ... The directory plugin also provides support for views. A view can be defined as a "VIEW ... END" block and should contain "BLOCK" definitions for files ('"file"') and directories ('"directory"'). [% VIEW myview %] [% BLOCK file %] - [% item.name %] [% END %] [% BLOCK directory %] * [% item.name %] [% item.content(myview) FILTER indent %] [% END %] [% END %] The view "print()" method can then be called, passing the "Directory" object as an argument. [% USE dir = Directory(dirpath, recurse=1) %] [% myview.print(dir) %] When a directory is presented to a view, either as "[% myview.print(dir) %]" or "[% dir.present(view) %]", then the "directory" "BLOCK" within the "myview" "VIEW" is processed. The "item" variable will be set to alias the "Directory" object. [% BLOCK directory %] * [% item.name %] [% item.content(myview) FILTER indent %] [% END %] In this example, the directory name is first printed and the content(view) method is then called to present each item within the directory to the view. Further directories will be mapped to the "directory" block, and files will be mapped to the "file" block. With the recurse option disabled, as it is by default, the "directory" block should explicitly call a "scan()" on each directory. [% VIEW myview %] [% BLOCK file %] - [% item.name %] [% END %] [% BLOCK directory %] * [% item.name %] [% item.scan %] [% item.content(myview) FILTER indent %] [% END %] [% END %] [% USE dir = Directory(dirpath) %] [% myview.print(dir) %] AUTHORS
Michael Stevens wrote the original Directory plugin on which this is based. Andy Wardley split it into separate File and Directory plugins, added some extra code and documentation for "VIEW" support, and made a few other minor tweaks. COPYRIGHT
Copyright (C) 2000-2007 Michael Stevens, Andy Wardley. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Template::Plugin, Template::Plugin::File, Template::View perl v5.12.1 2008-11-13 Template::Plugin::Directory(3)
All times are GMT -4. The time now is 12:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy