- How can you
- find all files under /var that are either
world-writable, or group-writable with group users
- remove all files under $HOME/tmp that haven't
been used for a week, except anything under subdirectories
named keep should be left intact?
- copy a directory tree so that the entire tree structure
is copied except files ending .o
or named a.out or core are not copied?
- Write a script
paloittele [-i input ] [-s string ] n1...
that splits given file or stdin into pieces called
string .1, string .2 etc (default
x.1, x.2...) so that the first file has first n1 lines
etc, and the last whatever is left over. E.g.,
paloittele -i kalat -s k 5 6 5
would create files k.1 with lines 1-5 from kalat,
k.2 with lines 6-11, k.3 lines 12-16 and k.4 the rest.
- Write a script
putkita [-i input ] [-o output ] command...
that executes given commands as a pipeline. E.g.,
putkita -i kalat -o fisut sort 'tr a-z A-Z' 'paste - -'
should be equivalent with
sort <kalat | tr a-z A-Z | paste - - >fisut
You can assume there's less than 10 commands.
- We want to compare too password files (Unix /etc/passwd-format)
and search for login names that appear in both but
have different uid or name field.
Write a script that
- outputs lines with same login name but different uid or name
(entire lines) next to each other (and omits other lines)
- outputs such duplicates on one line in format
loginname, uid1, nimi1, uid2, nimi2.
For testing you can use files
- Write a script that computes the factorial of a given integer
(n! = 1*2*...*n) so that it remembers and reports how many
times the same argument has already been used.
Allow for several simultaneous calls.
- Implement with sh scripts a daemon, that when started creates a pipe
and remains in the background, and when the pipe is read, reports
when it was last read before. When terminated it should remove the pipe.
Startup/stop script should understand arguments
start and stop.