Operating System - HP-UX
1833365 Members
3393 Online
110052 Solutions
New Discussion

find command with variables and *

 
Ratzie
Super Advisor

find command with variables and *

I am trying to write a script for a backup.

I have parsed yesterdays date in a variable, taken for the oracle database.

I then want to do a find in a directory with that date (all my backup file name start with a date)

20091028_online_bu_copy_TS_USERS-ioksum8q
20091028_online_bu_copy_TS_SYSTEM-ipksumm4
20091028_online_bu_copy_TS_UNDOTBS1-iqksumn7
20091028_online_bu_copy_TS_SYSAUX-irksumo0
20091028_cf&spfile_NASMB_c-2956975978-20091028-03
20091029_online_bu_copy_TS_USERS-o7kt13mq
20091029_online_bu_copy_TS_SYSTEM-o8kt144o
----------------------
YESTERDAY=`sqlplus -silent " / as sysdba" << EOF
set pagesize 0 feedback off heading off verify off echo off
Select to_char(sysdate-1,'YYYYMMDD') from dual
Exit;
EOF`

# echo $YESTERDAY
# 20091028

So I am having problems trying to do a find of files in a directory with $YESTERDAY in the file name.

find . -type f -name '*$YESTERDAY_*'
- DOES NOT WORK.


3 REPLIES 3
Patrick Wallek
Honored Contributor

Re: find command with variables and *

Use " (double quotes) rather than ' (single quote).

find . -type f -name "*$YESTERDAY_*"

should work fine.
Ratzie
Super Advisor

Re: find command with variables and *

Nope it returns all.
oracle@mbowodb1 NASMB> find . -type f -name "*$YESTERDAY_*"
./20091030_cf&spfile_NASMB_c-2956975978-20091030-02
./20091030_cf&spfile_NASMB_c-2956975978-20091030-00
./20091030_online_bu_copy_TS_UNDOTBS1-68kt3ngs
./20091030_online_bu_copy_TS_SYSAUX-69kt3nhl
./20091028_cf&spfile_NASMB_c-2956975978-20091028-03
./20091028_online_bu_copy_TS_SYSTEM-ipksumm4
./20091028_online_bu_copy_TS_UNDOTBS1-iqksumn7
./20091028_online_bu_copy_TS_SYSAUX-irksumo0
./20091030_online_bu_copy_TS_USERS-66kt3n25
./20091030_online_bu_copy_TS_SYSTEM-67kt3nfo
./20091029_cf_copy-v0kt1531.ctl
./20091029_cf&spfile_NASMB_c-2956975978-20091029-00
./20091029_online_bu_copy_TS_UNDOTBS1-o9kt1465
./20091029_online_bu_copy_TS_SYSAUX-oakt146u
./20091103_cf&spfile-AUTO_c-2956975978-20091103-01
./20091105_cf&spfile-AUTO_c-2956975978-20091105-00
./20091104_online_bu_copy_TS_SYSAUX-98kthi8g
./20091104_cf&spfile-AUTO_c-2956975978-20091104-02
./20091028_online_bu_copy_TS_USERS-ioksum8q
./20091104_online_bu_copy_TS_UNDOTBS1-97kthi7m
./20091029_online_bu_copy_TS_USERS-o7kt13mq
./20091029_online_bu_copy_TS_SYSTEM-o8kt144o
./20091103_cf_copy-pbktem96.ctl
./20091104_online_bu_copy_TS_SYSTEM-96kthi6j
./20091103_cf&spfile-AUTO_c-2956975978-20091103-00
./20091104_online_bu_copy_TS_USERS-95kthhov
./20091103_online_bu_copy_TS_SYSAUX-dkkted6f
./20091103_cf_copy-p9kteeo8.ctl
Ratzie
Super Advisor

Re: find command with variables and *

Figured it out:

oracle@mbowodb1 NASMB> find . -type f -name "*${YESTERDAY}_*"
./20091104_online_bu_copy_TS_SYSAUX-98kthi8g
./20091104_cf&spfile-AUTO_c-2956975978-20091104-02
./20091104_online_bu_copy_TS_UNDOTBS1-97kthi7m
./20091104_online_bu_copy_TS_SYSTEM-96kthi6j
./20091104_online_bu_copy_TS_USERS-95kthhov